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 : > diff --git a/README.md b/README.md index 6c6da4ea9..5614fab7b 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 @@ -539,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/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/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/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 72893bbdf..cf8ac64dc 100644 --- a/talib/__init__.py +++ b/talib/__init__.py @@ -101,13 +101,14 @@ 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 ( _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, @@ -157,6 +158,9 @@ def wrapper(*args, **kwds): 'HT_PHASOR', 'HT_SINE', 'HT_TRENDMODE', + 'SWAK_2PHP', + 'SWAK_BP', + 'SWAK_HP', ], 'Math Operators': [ 'ADD', @@ -197,19 +201,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 +235,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 +255,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 +283,15 @@ def wrapper(*args, **kwds): 'SAREXT', 'SMA', 'SUPERTREND', + 'SWAK_BUTTER', + 'SWAK_GAUSS', 'T3', 'TEMA', 'TRIMA', + 'VIDYA', 'VWMA', 'WMA', + 'ZIGZAG', 'ZLEMA', ], 'Pattern Recognition': [ @@ -339,10 +368,12 @@ def wrapper(*args, **kwds): 'Statistic Functions': [ 'BETA', 'CORREL', + 'KURTOSIS', 'LINEARREG', 'LINEARREG_ANGLE', 'LINEARREG_INTERCEPT', 'LINEARREG_SLOPE', + 'MEDIAN', 'PERCENTILE', 'PERCENTRANK', 'STDDEV', @@ -352,10 +383,14 @@ def wrapper(*args, **kwds): 'Volatility Indicators': [ 'ADR', 'ATR', + 'BBW', 'CVI', 'MASSI', 'NATR', + 'PERCENTB', + 'ROGERSSATCHELL', 'RVI', + 'RVIR', 'TRANGE', ], 'Volume Indicators': [ @@ -363,6 +398,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..cac11f506 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, } @@ -235,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( @@ -278,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/_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.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 diff --git a/talib/_ta_lib.pxd b/talib/_ta_lib.pxd index 688698e9b..8cc693d87 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,8 +74,22 @@ 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 + # 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 @@ -100,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 @@ -220,6 +237,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 +247,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 +261,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 +393,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 +415,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 +429,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 +439,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 +473,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 +485,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 +525,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 +559,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 +571,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 +591,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 +617,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 +635,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 +671,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 +681,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..d2b9a10ee 100644 --- a/talib/_ta_lib.pyi +++ b/talib/_ta_lib.pyi @@ -18,6 +18,11 @@ class MA_Type(Enum): DEFAULT = 11 ZLEMA = 12 RMA = 13 + VIDYA = 14 + ALMA = 15 + +UNSTABLE_AUTO_PREC_4: int +UNSTABLE_AUTO_PREC_8: int #Overlap Studies Functions @@ -167,6 +172,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 +540,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 +748,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 +814,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 +891,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 +1379,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 +1405,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 +1491,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.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/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..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 @@ -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() @@ -184,14 +194,34 @@ 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()) 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(): @@ -337,8 +367,36 @@ 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 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 +427,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(): 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 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)