diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f4f2b5a04b..13e25910af 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -21,8 +21,8 @@ jobs: id: talib_c run: | set -euo pipefail - V=$(sed -n 's/^ TALIB_C_VER: *//p' .github/workflows/wheels.yml) - [ -n "$V" ] || { echo "::error::no TALIB_C_VER in wheels.yml"; exit 1; } + V=$(sed -n "s/^TALIB_C_VERSION = '\(.*\)'$/\1/p" setup.py) + [ -n "$V" ] || { echo "::error::no TALIB_C_VERSION in setup.py"; exit 1; } echo "version=$V" >> "$GITHUB_OUTPUT" - name: Set up TA-Lib diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 66ed4d4f58..00269740ac 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -7,7 +7,6 @@ on: workflow_dispatch: env: - TALIB_C_VER: 0.8.1 PIP_NO_VERIFY: 0 PIP_VERBOSE: 1 CIBW_BEFORE_BUILD: pip install -U setuptools Cython wheel meson-python ninja && pip install -U numpy @@ -197,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/CHANGELOG b/CHANGELOG index 8969f75400..978a40bd5e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,7 @@ 0.8.3 ===== -- [NEW]: Source builds download and verify TA-Lib C 0.8.1, build it as a +- [NEW]: Source builds download and verify TA-Lib C 0.8.3, build it as a static library and link it into the extension. A compiler, CMake and network access are required; a separate TA-Lib C installation is no longer needed. Generated C files remain included in source distributions. diff --git a/README.md b/README.md index 6c6da4ea98..b0b72a26bf 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ conda install -c conda-forge ta-lib Binary wheels include the [TA-Lib](http://ta-lib.org) C library and do not require a compiler or a separate TA-Lib C installation. -Starting with version 0.8.3, source builds download the pinned TA-Lib C 0.8.1 +Starting with version 0.8.3, source builds download the pinned TA-Lib C 0.8.3 release, verify its checksum, and build and statically link it into the Python extension. This requires network access, a C compiler and CMake. On Windows, source builds require the Microsoft C++ Build Tools. CMake is installed @@ -123,24 +123,24 @@ your-arm64-python -m pip install --no-cache-dir ta-lib For 64-bit Windows, the easiest way is to get the *executable installer*: -1. Download [ta-lib-0.8.1-windows-x86_64.msi](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_64.msi). +1. Download [ta-lib-0.8.3-windows-x86_64.msi](https://github.com/ta-lib/ta-lib/releases/download/v0.8.3/ta-lib-0.8.3-windows-x86_64.msi). 2. Run the Installer or run `msiexec` [from the command-line](https://learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options). Alternatively, if you prefer to get the libraries without installing, or would like to use the 32-bit version: -* Intel/AMD 64-bit [ta-lib-0.8.1-windows-x86_64.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_64.zip) -* Intel/AMD 32-bit [ta-lib-0.8.1-windows-x86_32.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-windows-x86_32.zip) +* Intel/AMD 64-bit [ta-lib-0.8.3-windows-x86_64.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.3/ta-lib-0.8.3-windows-x86_64.zip) +* Intel/AMD 32-bit [ta-lib-0.8.3-windows-x86_32.zip](https://github.com/ta-lib/ta-lib/releases/download/v0.8.3/ta-lib-0.8.3-windows-x86_32.zip) #### Linux Download -[ta-lib-0.8.1-src.tar.gz](https://github.com/ta-lib/ta-lib/releases/download/v0.8.1/ta-lib-0.8.1-src.tar.gz) +[ta-lib-0.8.3-src.tar.gz](https://github.com/ta-lib/ta-lib/releases/download/v0.8.3/ta-lib-0.8.3-src.tar.gz) and: ```shell -tar -xzf ta-lib-0.8.1-src.tar.gz -cd ta-lib-0.8.1/ +tar -xzf ta-lib-0.8.3-src.tar.gz +cd ta-lib-0.8.3/ ./configure --prefix=/usr make sudo make install @@ -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 0e25d7bdad..a5b469fef7 100644 --- a/docs/func.md +++ b/docs/func.md @@ -35,6 +35,11 @@ from talib import MA_Type upper, middle, lower = talib.BBANDS(close, matype=MA_Type.T3) ``` +Every `matype` argument (for example `STOCH`'s `slowk_matype` and +`slowd_matype`) takes an `MA_Type` value. The integer defaults shown in the +function docs are those values: `0` is `MA_Type.SMA`, and `MA_Type[n]` names +value `n`. + Calculating momentum of the close prices, with a time period of 5: ```python @@ -45,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 2ed18806a3..c3ea9586bf 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 7db9fac82d..a7708c39c4 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,12 +248,29 @@ 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 slowk, slowd = STOCH(high, low, close, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) ``` @@ -237,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 45c86ad5d6..2748e360ee 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 d3cbecc2b8..b55533ae7e 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 477016f6b5..1e0cc3b24b 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 16f2f47d02..2dd8ff24e7 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 14ab137765..ee08a749d7 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 2f192de02b..9ebb242ce1 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/setup.py b/setup.py index 92c52a7e47..aa57ad9b5f 100644 --- a/setup.py +++ b/setup.py @@ -16,8 +16,8 @@ import numpy -TALIB_C_VERSION = '0.8.1' -TALIB_C_SHA256 = 'ec59ccd88c0c77f618587d858787c8f9d06c40460a09d66751926f6fd670f985' +TALIB_C_VERSION = '0.8.3' +TALIB_C_SHA256 = '28b1179b178a0db15f3dad0d846ef77f18eb06db5dfc5b5a8ca153a9ea5d84e6' def talib_source(directory): diff --git a/talib/__init__.py b/talib/__init__.py index 72893bbdff..cf8ac64dc4 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/_abstract.pxi b/talib/_abstract.pxi index 1f1eb407e7..b3855d9043 100644 --- a/talib/_abstract.pxi +++ b/talib/_abstract.pxi @@ -7,7 +7,9 @@ try: except ImportError: # handle python 2.6 and earlier from ordereddict import OrderedDict from cython.operator cimport dereference as deref +import numbers import numpy +import operator import sys cimport numpy as np @@ -289,8 +291,10 @@ class Function(object): local = self.__local parameters = parameters or {} parameters.update(kwargs) - for param, value in parameters.items(): - if self.__check_opt_input_value(param, value): + updates = [(param, self.__opt_input_value(param, value)) + for param, value in parameters.items()] + for param, value in updates: + if value is not None: local.opt_inputs[param]['value'] = value local.outputs_valid = False local.info['parameters'] = self.parameters @@ -306,9 +310,9 @@ class Function(object): for key in kwargs: if key in local.opt_inputs: - value = kwargs[key] - if self.__check_opt_input_value(key, value): - local.opt_inputs[key]['value'] = kwargs[key] + value = self.__opt_input_value(key, kwargs[key]) + if value is not None: + local.opt_inputs[key]['value'] = value update_info = True elif key in local.input_names: local.input_names[key]['price_series'] = kwargs[key] @@ -322,8 +326,8 @@ class Function(object): for i, param_name in enumerate(local.opt_inputs): i += skip_first if i < len(args): - value = args[i] - if self.__check_opt_input_value(param_name, value): + value = self.__opt_input_value(param_name, args[i]) + if value is not None: local.opt_inputs[param_name]['value'] = value update_info = True @@ -459,18 +463,19 @@ class Function(object): ', '.join(input_price_series_names)) raise TypeError(msg) - self.set_function_args(*args, **kwargs) - self.__call_function() - - # restore opt_input values to as they were before this call - for param_name, value in opt_input_values: - local.opt_inputs[param_name]['value'] = value - local.info['parameters'] = self.parameters + try: + self.set_function_args(*args, **kwargs) + self.__call_function() + finally: + # restore opt_input values to as they were before this call + for param_name, value in opt_input_values: + local.opt_inputs[param_name]['value'] = value + local.info['parameters'] = self.parameters - # restore input names values to as they were before this call - for input_name, value in price_series_name_values: - local.input_names[input_name]['price_series'] = value - local.info['input_names'][input_name] = value + # restore input names values to as they were before this call + for input_name, value in price_series_name_values: + local.input_names[input_name]['price_series'] = value + local.info['input_names'][input_name] = value return self.outputs @@ -518,20 +523,25 @@ class Function(object): local.outputs[output] = results[i] local.outputs_valid = True - def __check_opt_input_value(self, input_name, value): + def __opt_input_value(self, input_name, value): + """ + Returns value (None included) as given if it is of its parameter's + type, converted if it is another number of that kind; otherwise raises + TypeError. + """ type_ = self.__local.opt_inputs[input_name]['type'] if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: - type_ = int + type_, kind, convert = int, numbers.Integral, operator.index elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: - type_ = float - - if isinstance(value, type_): - return True - elif value is not None: - raise TypeError( - 'Invalid parameter value for %s (expected %s, got %s)' % ( - input_name, type_.__name__, type(value).__name__)) - return False + type_, kind, convert = float, numbers.Real, float + + if value is None or isinstance(value, type_): + return value + if isinstance(value, kind): + return convert(value) + raise TypeError( + 'Invalid parameter value for %s (expected %s, got %s)' % ( + input_name, type_.__name__, type(value).__name__)) def __get_opt_input_value(self, input_name): """ @@ -619,6 +629,9 @@ def __get_flags(int flag, dict flags_lookup_dict): TA_FUNC_FLAGS = { 1: 'A period of 1 performs no smoothing', + 2: 'An output is display-shifted', + 4: 'Uses a transcendental math function', + 8: 'Input must be positive', 16777216: 'Output scale same as input', 33554432: 'Function has a streaming API', 67108864: 'Output is over volume', @@ -647,13 +660,15 @@ TA_OUTPUT_FLAGS = { 16: 'Histogram', 32: 'Pattern (Bool)', 64: 'Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)', - 128: 'Strength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)', + 128: 'Confirmation Pattern (+/-200 = this bar confirms an earlier pattern)', 256: 'Output can be positive', 512: 'Output can be negative', 1024: 'Output can be zero', 2048: 'Values represent an upper limit', 4096: 'Values represent a lower limit', 8192: 'Output is optional (nullable)', + 16384: 'Output is display-shifted', + 32768: 'Weak Pattern (+/-80 = a weaker form of the pattern)', } def _ta_getFuncInfo(char *function_name): diff --git a/talib/_common.pxi b/talib/_common.pxi index b41820ac93..cac11f506e 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 7675964543..7cd03c2620 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 1720a00476..677cb8a790 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 78dfee369a..874cbd2908 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1,60 +1,5 @@ /* Generated by Cython 3.3.0 */ -/* BEGIN: Cython Metadata -{ - "distutils": { - "depends": [ - "/opt/homebrew/include/ta-lib/ta_abstract.h", - "/opt/homebrew/include/ta-lib/ta_common.h", - "/opt/homebrew/include/ta-lib/ta_defs.h", - "/opt/homebrew/include/ta-lib/ta_func.h", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayobject.h", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include/numpy/arrayscalars.h", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarrayobject.h", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include/numpy/ndarraytypes.h", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include/numpy/ufuncobject.h" - ], - "include_dirs": [ - "/usr/include", - "/usr/local/include", - "/opt/include", - "/opt/local/include", - "/opt/homebrew/include", - "/opt/homebrew/opt/ta-lib/include", - "/private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/_core/include" - ], - "libraries": [ - "ta-lib" - ], - "library_dirs": [ - "/usr/lib", - "/usr/local/lib", - "/usr/lib64", - "/usr/local/lib64", - "/opt/lib", - "/opt/local/lib", - "/opt/homebrew/lib", - "/opt/homebrew/opt/ta-lib/lib" - ], - "name": "talib._ta_lib", - "runtime_library_dirs": [ - "/usr/lib", - "/usr/local/lib", - "/usr/lib64", - "/usr/local/lib64", - "/opt/lib", - "/opt/local/lib", - "/opt/homebrew/lib", - "/opt/homebrew/opt/ta-lib/lib" - ], - "sources": [ - "talib/_ta_lib.pyx" - ] - }, - "module_name": "talib._ta_lib" -} -END: Cython Metadata */ - #ifndef PY_SSIZE_T_CLEAN #define PY_SSIZE_T_CLEAN #endif /* PY_SSIZE_T_CLEAN */ @@ -1575,10 +1520,10 @@ static const char* const __pyx_f[] = { "talib/_common.pxi", "talib/_abstract.pxi", "talib/_stream.pxi", - "../../../../private/tmp/talib-gil-venv/lib/python3.14/site-packages/numpy/__init__.cython-30.pxd", + ".venv/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd", "(tree fragment)", "talib/_func.pxi", - "cpython/type.pxd", + ".venv/lib/python3.12/site-packages/Cython/Includes/cpython/type.pxd", }; /* #### Code section: utility_code_proto_before_types ### */ /* PyThreadTypeLockDecl.proto (used by PyMutexDecl) */ @@ -1868,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; @@ -1943,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; @@ -1950,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; @@ -1973,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; @@ -1993,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; @@ -2008,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; @@ -2022,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; @@ -2039,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; @@ -2052,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 { @@ -2126,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; }; @@ -2146,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; }; @@ -2176,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; }; @@ -2501,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; }; @@ -2536,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; }; @@ -2561,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; }; @@ -2581,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; }; @@ -2596,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; }; @@ -2611,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; }; @@ -2651,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; }; @@ -2671,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; }; @@ -2751,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; }; @@ -2826,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; }; @@ -2851,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; }; @@ -2896,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; }; @@ -2906,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; }; @@ -2921,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; }; @@ -2946,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; }; @@ -2981,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; }; @@ -3046,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; }; @@ -3066,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; }; @@ -3081,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; }; @@ -3159,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; }; @@ -3187,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; }; @@ -3229,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; }; @@ -3684,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; }; @@ -3733,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; }; @@ -3768,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; }; @@ -3796,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; }; @@ -3817,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; }; @@ -3838,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; }; @@ -3894,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; }; @@ -3922,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; }; @@ -4034,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; }; @@ -4139,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; }; @@ -4174,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; }; @@ -4237,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; }; @@ -4251,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; }; @@ -4272,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; }; @@ -4307,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; }; @@ -4356,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; }; @@ -4447,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; }; @@ -4475,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; }; @@ -4496,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; }; @@ -5287,6 +5700,9 @@ static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x); #define __Pyx_PyList_Append(L,x) PyList_Append(L,x) #endif +/* ListCompAppendAndDecref.proto */ +static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x); + /* PyObjectCallMethod0.proto (used by dict_iter_common) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); @@ -5347,9 +5763,6 @@ static CYTHON_INLINE int __Pyx_PyObject_CompareBoolLt_object_int(PyObject *op1, /* PyObjectCompare.proto */ static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_int(PyObject *op1, PyObject *op2, int pyop); -/* ListCompAppendAndDecref.proto */ -static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x); - /* PyIndexError_Check.proto */ #define __Pyx_PyExc_IndexError_Check(obj) __Pyx_TypeCheck(obj, PyExc_IndexError) @@ -5381,13 +5794,13 @@ static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t #define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) #endif +/* RaiseUnboundLocalError.proto */ +static void __Pyx_RaiseUnboundLocalError(const char *varname); + /* PyObject_Unicode.proto */ #define __Pyx_PyObject_Unicode(obj)\ (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) -/* RaiseUnboundLocalError.proto */ -static void __Pyx_RaiseUnboundLocalError(const char *varname); - /* PyNumberBinop.proto */ #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_GRAAL || CYTHON_COMPILING_IN_LIMITED_API #define __Pyx_PyNumber_And_object_int(op1, op2) PyNumber_And(op1, op2) @@ -5931,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 *); @@ -5946,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); @@ -6096,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*/ @@ -6104,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*/ @@ -6116,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*/ @@ -6246,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*/ @@ -6260,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*/ @@ -6270,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*/ @@ -6278,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*/ @@ -6306,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*/ @@ -6314,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*/ @@ -6346,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*/ @@ -6376,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*/ @@ -6386,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*/ @@ -6404,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*/ @@ -6424,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*/ @@ -6438,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*/ @@ -6464,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*/ @@ -6472,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*/ @@ -6573,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 */ @@ -6800,19 +7322,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject 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); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ -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); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__opt_input_value(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_name, PyObject *__pyx_v_value); /* proto */ 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); /* proto */ 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 */ @@ -6882,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 */ @@ -6910,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 */ @@ -6952,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 */ @@ -7407,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 */ @@ -7456,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 */ @@ -7491,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 */ @@ -7519,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 */ @@ -7540,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 */ @@ -7561,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 */ @@ -7617,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 */ @@ -7645,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 */ @@ -7757,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 */ @@ -7862,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 */ @@ -7897,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 */ @@ -7960,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 */ @@ -7974,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 */ @@ -7995,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 */ @@ -8030,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 */ @@ -8079,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 */ @@ -8170,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 */ @@ -8198,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 */ @@ -8219,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 */ @@ -8226,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 @@ -8558,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 @@ -8674,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 @@ -8848,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 @@ -10733,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 @@ -10936,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 @@ -11081,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 @@ -11197,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 @@ -11284,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 @@ -11371,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 @@ -11603,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 @@ -11719,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 @@ -12183,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 @@ -12618,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 @@ -12763,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 @@ -13024,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 @@ -13082,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 @@ -13169,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 @@ -13314,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 @@ -13517,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 @@ -13894,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 @@ -14010,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 @@ -14097,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 @@ -14177,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; @@ -14252,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; @@ -14259,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; @@ -14282,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; @@ -14302,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; @@ -14317,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; @@ -14331,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; @@ -14348,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; @@ -14361,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; @@ -14381,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; @@ -14456,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; @@ -14463,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; @@ -14486,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; @@ -14506,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; @@ -14521,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; @@ -14535,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; @@ -14552,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; @@ -14565,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[2876]; - PyObject *__pyx_number_tab[36]; + PyObject *__pyx_tuple[46]; + PyObject *__pyx_codeobj_tab[536]; + PyObject *__pyx_string_tab[3366]; + PyObject *__pyx_number_tab[43]; /* #### Code section: module_state_contents ### */ /* PyFrozenDict.module_state_decls */ #if CYTHON_COMPILING_IN_LIMITED_API @@ -14660,2886 +16550,3383 @@ static __pyx_mstatetype * const __pyx_mstate_global = &__pyx_mstate_global_stati #define __pyx_kp_u_A_period_of_1_performs_no_smooth __pyx_string_tab[29] #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_Bad_Object_TA_BAD_OBJECT __pyx_string_tab[32] -#define __pyx_kp_u_Bad_Parameter_TA_BAD_PARAM __pyx_string_tab[33] -#define __pyx_kp_u_Bull_Bear_Pattern_Bearish_0_Neut __pyx_string_tab[34] -#define __pyx_kp_u_Cannot_mix_polars_and_pandas __pyx_string_tab[35] -#define __pyx_kp_u_Dashed_Line __pyx_string_tab[36] -#define __pyx_kp_u_Dotted_Line __pyx_string_tab[37] -#define __pyx_kp_u_Double_Exponential_Moving_Averag __pyx_string_tab[38] -#define __pyx_kp_u_Exponential_Moving_Average __pyx_string_tab[39] -#define __pyx_kp_u_Function_Not_Found_TA_FUNC_NOT_F __pyx_string_tab[40] -#define __pyx_kp_u_Function_has_a_streaming_API __pyx_string_tab[41] -#define __pyx_kp_u_Function_has_an_unstable_period __pyx_string_tab[42] -#define __pyx_kp_u_Group_Not_Found_TA_GROUP_NOT_FOU __pyx_string_tab[43] -#define __pyx_kp_u_Hull_Moving_Average __pyx_string_tab[44] -#define __pyx_kp_u_Input_Not_All_Initialized_TA_INP __pyx_string_tab[45] -#define __pyx_kp_u_Inputs __pyx_string_tab[46] -#define __pyx_kp_u_Insufficient_History_TA_INSUFFIC __pyx_string_tab[47] -#define __pyx_kp_u_Internal_Error_TA_INTERNAL_ERROR __pyx_string_tab[48] -#define __pyx_kp_u_Invalid_Handle_TA_INVALID_HANDLE __pyx_string_tab[49] -#define __pyx_kp_u_Invalid_List_Type_TA_INVALID_LIS __pyx_string_tab[50] -#define __pyx_kp_u_Invalid_Parameter_Function_TA_IN __pyx_string_tab[51] -#define __pyx_kp_u_Invalid_Parameter_Holder_TA_INVA __pyx_string_tab[52] -#define __pyx_kp_u_Invalid_Parameter_Holder_Type_TA __pyx_string_tab[53] -#define __pyx_kp_u_Invalid_parameter_value_for __pyx_string_tab[54] -#define __pyx_kp_u_Kaufman_Adaptive_Moving_Average __pyx_string_tab[55] -#define __pyx_kp_u_Library_Not_Initialized_TA_LIB_N __pyx_string_tab[56] -#define __pyx_kp_u_MESA_Adaptive_Moving_Average __pyx_string_tab[57] -#define __pyx_kp_u_MFI_s_unstable_period_was_retire __pyx_string_tab[58] -#define __pyx_kp_u_No_Moving_Average_identity __pyx_string_tab[59] -#define __pyx_kp_u_None __pyx_string_tab[60] -#define __pyx_kp_u_Not_Supported_TA_NOT_SUPPORTED __pyx_string_tab[61] -#define __pyx_kp_u_Not_enough_history_to_open_a_str __pyx_string_tab[62] -#define __pyx_kp_u_Not_enough_price_arguments_expec __pyx_string_tab[63] -#define __pyx_kp_u_Note_that_Cython_is_deliberately __pyx_string_tab[64] -#define __pyx_kp_u_Out_of_Range_End_Index_TA_OUT_OF __pyx_string_tab[65] -#define __pyx_kp_u_Out_of_Range_Start_Index_TA_OUT __pyx_string_tab[66] -#define __pyx_kp_u_Output_Not_All_Initialized_TA_OU __pyx_string_tab[67] -#define __pyx_kp_u_Output_can_be_NaN_or_infinite __pyx_string_tab[68] -#define __pyx_kp_u_Output_can_be_negative __pyx_string_tab[69] -#define __pyx_kp_u_Output_can_be_positive __pyx_string_tab[70] -#define __pyx_kp_u_Output_can_be_zero __pyx_string_tab[71] -#define __pyx_kp_u_Output_is_a_candlestick __pyx_string_tab[72] -#define __pyx_kp_u_Output_is_optional_nullable __pyx_string_tab[73] -#define __pyx_kp_u_Output_is_over_volume __pyx_string_tab[74] -#define __pyx_kp_u_Output_is_path_dependent __pyx_string_tab[75] -#define __pyx_kp_u_Output_scale_same_as_input __pyx_string_tab[76] -#define __pyx_kp_u_Outputs __pyx_string_tab[77] -#define __pyx_kp_u_Parameters __pyx_string_tab[78] -#define __pyx_kp_u_Pattern_Bool __pyx_string_tab[79] -#define __pyx_kp_u_STOCHRSI_has_no_unstable_period __pyx_string_tab[80] -#define __pyx_kp_u_Simple_Moving_Average __pyx_string_tab[81] -#define __pyx_kp_u_Strength_Pattern_200_100_Bearish __pyx_string_tab[82] -#define __pyx_kp_u_TA_Lib_is_not_initialized_or_a_s __pyx_string_tab[83] -#define __pyx_kp_u_The_Function_s_Own_Default_Movin __pyx_string_tab[84] -#define __pyx_kp_u_Too_many_price_arguments_expecte __pyx_string_tab[85] -#define __pyx_kp_u_Triangular_Moving_Average __pyx_string_tab[86] -#define __pyx_kp_u_Triple_Exponential_Moving_Averag __pyx_string_tab[87] -#define __pyx_kp_u_Triple_Generalized_Double_Expone __pyx_string_tab[88] -#define __pyx_kp_u_Unknown_Error __pyx_string_tab[89] -#define __pyx_kp_u_Unknown_Error_TA_UNKNOWN_ERR __pyx_string_tab[90] -#define __pyx_kp_u_Values_represent_a_lower_limit __pyx_string_tab[91] -#define __pyx_kp_u_Values_represent_an_upper_limit __pyx_string_tab[92] -#define __pyx_kp_u_Weighted_Moving_Average __pyx_string_tab[93] -#define __pyx_kp_u_Wilder_s_Smoothed_Moving_Average __pyx_string_tab[94] -#define __pyx_kp_u_Zero_Lag_Exponential_Moving_Aver __pyx_string_tab[95] -#define __pyx_kp_u__9 __pyx_string_tab[96] -#define __pyx_kp_u_input_arrays_2 __pyx_string_tab[97] -#define __pyx_kp_u__11 __pyx_string_tab[98] -#define __pyx_kp_u_add_note __pyx_string_tab[99] -#define __pyx_kp_u_begidx_nbelement __pyx_string_tab[100] -#define __pyx_kp_u_cannot_change_TA_Lib_settings_or __pyx_string_tab[101] -#define __pyx_kp_u_cannot_pickle_s_a_stream_handle __pyx_string_tab[102] -#define __pyx_kp_u_cannot_shut_down_TA_Lib_while_ca __pyx_string_tab[103] -#define __pyx_kp_u_disable __pyx_string_tab[104] -#define __pyx_kp_u_enable __pyx_string_tab[105] -#define __pyx_kp_u_gc __pyx_string_tab[106] -#define __pyx_kp_u_input_array_has_wrong_dimensions __pyx_string_tab[107] -#define __pyx_kp_u_input_array_lengths_are_differen __pyx_string_tab[108] -#define __pyx_kp_u_input_array_type_is_not_double __pyx_string_tab[109] -#define __pyx_kp_u_input_must_be_a_numpy_array_or_a __pyx_string_tab[110] -#define __pyx_kp_u_input_arrays_parameter_missing_r __pyx_string_tab[111] -#define __pyx_kp_u_integer_values_are_100_0_or_100 __pyx_string_tab[112] -#define __pyx_kp_u_isenabled __pyx_string_tab[113] -#define __pyx_kp_u_no_history_the_input_array_is_em __pyx_string_tab[114] -#define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_string_tab[115] -#define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_string_tab[116] -#define __pyx_kp_u_talib_collections __pyx_string_tab[117] -#define __pyx_kp_u_talib_numpy __pyx_string_tab[118] -#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[119] -#define __pyx_kp_u_talib_pandas __pyx_string_tab[120] -#define __pyx_kp_u_talib_polars __pyx_string_tab[121] -#define __pyx_kp_u_talib_sys __pyx_string_tab[122] -#define __pyx_kp_u_talib_threading __pyx_string_tab[123] -#define __pyx_kp_u_talib_warnings __pyx_string_tab[124] -#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[125] -#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[126] -#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[127] -#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[128] -#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[129] -#define __pyx_kp_u_unstable_period __pyx_string_tab[130] -#define __pyx_n_u_AC __pyx_string_tab[131] -#define __pyx_n_u_ACCBANDS __pyx_string_tab[132] -#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[133] -#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[134] -#define __pyx_n_u_ACOS __pyx_string_tab[135] -#define __pyx_n_u_ACOS_Stream __pyx_string_tab[136] -#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[137] -#define __pyx_n_u_AC_Stream __pyx_string_tab[138] -#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[139] -#define __pyx_n_u_AD __pyx_string_tab[140] -#define __pyx_n_u_ADD __pyx_string_tab[141] -#define __pyx_n_u_ADD_Stream __pyx_string_tab[142] -#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[143] -#define __pyx_n_u_ADOSC __pyx_string_tab[144] -#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[145] -#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[146] -#define __pyx_n_u_ADR __pyx_string_tab[147] -#define __pyx_n_u_ADR_Stream __pyx_string_tab[148] -#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[149] -#define __pyx_n_u_ADX __pyx_string_tab[150] -#define __pyx_n_u_ADXR __pyx_string_tab[151] -#define __pyx_n_u_ADXR_Stream __pyx_string_tab[152] -#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[153] -#define __pyx_n_u_ADX_Stream __pyx_string_tab[154] -#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[155] -#define __pyx_n_u_AD_Stream __pyx_string_tab[156] -#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[157] -#define __pyx_n_u_ALL __pyx_string_tab[158] -#define __pyx_n_u_AO __pyx_string_tab[159] -#define __pyx_n_u_AO_Stream __pyx_string_tab[160] -#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[161] -#define __pyx_n_u_APO __pyx_string_tab[162] -#define __pyx_n_u_APO_Stream __pyx_string_tab[163] -#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[164] -#define __pyx_n_u_AROON __pyx_string_tab[165] -#define __pyx_n_u_AROONOSC __pyx_string_tab[166] -#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[167] -#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[168] -#define __pyx_n_u_AROON_Stream __pyx_string_tab[169] -#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[170] -#define __pyx_n_u_ASIN __pyx_string_tab[171] -#define __pyx_n_u_ASIN_Stream __pyx_string_tab[172] -#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[173] -#define __pyx_n_u_ATAN __pyx_string_tab[174] -#define __pyx_n_u_ATAN_Stream __pyx_string_tab[175] -#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[176] -#define __pyx_n_u_ATR __pyx_string_tab[177] -#define __pyx_n_u_ATR_Stream __pyx_string_tab[178] -#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[179] -#define __pyx_n_u_AVGDEV __pyx_string_tab[180] -#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[181] -#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[182] -#define __pyx_n_u_AVGPRICE __pyx_string_tab[183] -#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[184] -#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[185] -#define __pyx_n_u_AllCandleSettings __pyx_string_tab[186] -#define __pyx_n_u_BBANDS __pyx_string_tab[187] -#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[188] -#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[189] -#define __pyx_n_u_BETA __pyx_string_tab[190] -#define __pyx_n_u_BETA_Stream __pyx_string_tab[191] -#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[192] -#define __pyx_n_u_BOP __pyx_string_tab[193] -#define __pyx_n_u_BOP_Stream __pyx_string_tab[194] -#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[195] -#define __pyx_n_u_BodyDoji __pyx_string_tab[196] -#define __pyx_n_u_BodyLong __pyx_string_tab[197] -#define __pyx_n_u_BodyShort __pyx_string_tab[198] -#define __pyx_n_u_BodyVeryLong __pyx_string_tab[199] -#define __pyx_n_u_CCI __pyx_string_tab[200] -#define __pyx_n_u_CCI_Stream __pyx_string_tab[201] -#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[202] -#define __pyx_n_u_CDL2CROWS __pyx_string_tab[203] -#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[204] -#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[205] -#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[206] -#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[207] -#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[208] -#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[209] -#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[210] -#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[211] -#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[212] -#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[213] -#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[214] -#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[215] -#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[216] -#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[217] -#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[218] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[219] -#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[220] -#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[221] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[222] -#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[223] -#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[224] -#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[225] -#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[226] -#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[227] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[228] -#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[229] -#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[230] -#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[231] -#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[232] -#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[233] -#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[234] -#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[235] -#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[236] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[237] -#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[238] -#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[239] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[240] -#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[241] -#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[242] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[243] -#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[244] -#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[245] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[246] -#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[247] -#define __pyx_n_u_CDLDOJI __pyx_string_tab[248] -#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[249] -#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[250] -#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[251] -#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[252] -#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[253] -#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[254] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[255] -#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[256] -#define __pyx_n_u_CDLENGULFING __pyx_string_tab[257] -#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[258] -#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[259] -#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[260] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[261] -#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[262] -#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[263] -#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[264] -#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[265] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[266] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[267] -#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[268] -#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[269] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[270] -#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[271] -#define __pyx_n_u_CDLHAMMER __pyx_string_tab[272] -#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[273] -#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[274] -#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[275] -#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[276] -#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[277] -#define __pyx_n_u_CDLHARAMI __pyx_string_tab[278] -#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[279] -#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[280] -#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[281] -#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[282] -#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[283] -#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[284] -#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[285] -#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[286] -#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[287] -#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[288] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[289] -#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[290] -#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[291] -#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[292] -#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[293] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[294] -#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[295] -#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[296] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[297] -#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[298] -#define __pyx_n_u_CDLINNECK __pyx_string_tab[299] -#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[300] -#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[301] -#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[302] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[303] -#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[304] -#define __pyx_n_u_CDLKICKING __pyx_string_tab[305] -#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[306] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[307] -#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[308] -#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[309] -#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[310] -#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[311] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[312] -#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[313] -#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[314] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[315] -#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[316] -#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[317] -#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[318] -#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[319] -#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[320] -#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[321] -#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[322] -#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[323] -#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[324] -#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[325] -#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[326] -#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[327] -#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[328] -#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[329] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[330] -#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[331] -#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[332] -#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[333] -#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[334] -#define __pyx_n_u_CDLONNECK __pyx_string_tab[335] -#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[336] -#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[337] -#define __pyx_n_u_CDLPIERCING __pyx_string_tab[338] -#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[339] -#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[340] -#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[341] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[342] -#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[343] -#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[344] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[345] -#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[346] -#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[347] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[348] -#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[349] -#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[350] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[351] -#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[352] -#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[353] -#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[354] -#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[355] -#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[356] -#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[357] -#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[358] -#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[359] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[360] -#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[361] -#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[362] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[363] -#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[364] -#define __pyx_n_u_CDLTAKURI __pyx_string_tab[365] -#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[366] -#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[367] -#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[368] -#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[369] -#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[370] -#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[371] -#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[372] -#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[373] -#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[374] -#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[375] -#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[376] -#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[377] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[378] -#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[379] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[380] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[381] -#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[382] -#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[383] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[384] -#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[385] -#define __pyx_n_u_CEIL __pyx_string_tab[386] -#define __pyx_n_u_CEIL_Stream __pyx_string_tab[387] -#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[388] -#define __pyx_n_u_CMF __pyx_string_tab[389] -#define __pyx_n_u_CMF_Stream __pyx_string_tab[390] -#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[391] -#define __pyx_n_u_CMO __pyx_string_tab[392] -#define __pyx_n_u_CMOU __pyx_string_tab[393] -#define __pyx_n_u_CMOU_Stream __pyx_string_tab[394] -#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[395] -#define __pyx_n_u_CMO_Stream __pyx_string_tab[396] -#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[397] -#define __pyx_n_u_COPPOCK __pyx_string_tab[398] -#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[399] -#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[400] -#define __pyx_n_u_CORREL __pyx_string_tab[401] -#define __pyx_n_u_CORREL_Stream __pyx_string_tab[402] -#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[403] -#define __pyx_n_u_COS __pyx_string_tab[404] -#define __pyx_n_u_COSH __pyx_string_tab[405] -#define __pyx_n_u_COSH_Stream __pyx_string_tab[406] -#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[407] -#define __pyx_n_u_COS_Stream __pyx_string_tab[408] -#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[409] -#define __pyx_n_u_CUMSUM __pyx_string_tab[410] -#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[411] -#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[412] -#define __pyx_n_u_CVI __pyx_string_tab[413] -#define __pyx_n_u_CVI_Stream __pyx_string_tab[414] -#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[415] -#define __pyx_n_u_CandleSettingType __pyx_string_tab[416] -#define __pyx_n_u_DEFAULT __pyx_string_tab[417] -#define __pyx_n_u_DEMA __pyx_string_tab[418] -#define __pyx_n_u_DEMA_Stream __pyx_string_tab[419] -#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[420] -#define __pyx_n_u_DISABLED __pyx_string_tab[421] -#define __pyx_n_u_DIV __pyx_string_tab[422] -#define __pyx_n_u_DIV_Stream __pyx_string_tab[423] -#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[424] -#define __pyx_n_u_DONCHIAN __pyx_string_tab[425] -#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[426] -#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[427] -#define __pyx_n_u_DPO __pyx_string_tab[428] -#define __pyx_n_u_DPO_Stream __pyx_string_tab[429] -#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[430] -#define __pyx_n_u_DX __pyx_string_tab[431] -#define __pyx_n_u_DX_Stream __pyx_string_tab[432] -#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[433] -#define __pyx_n_u_DataFrame __pyx_string_tab[434] -#define __pyx_n_u_Dot __pyx_string_tab[435] -#define __pyx_n_u_EFI __pyx_string_tab[436] -#define __pyx_n_u_EFI_Stream __pyx_string_tab[437] -#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[438] -#define __pyx_n_u_EMA __pyx_string_tab[439] -#define __pyx_n_u_EMA_Stream __pyx_string_tab[440] -#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[441] -#define __pyx_n_u_ER __pyx_string_tab[442] -#define __pyx_n_u_ERI __pyx_string_tab[443] -#define __pyx_n_u_ERI_Stream __pyx_string_tab[444] -#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[445] -#define __pyx_n_u_ER_Stream __pyx_string_tab[446] -#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[447] -#define __pyx_n_u_EXP __pyx_string_tab[448] -#define __pyx_n_u_EXP_Stream __pyx_string_tab[449] -#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[450] -#define __pyx_n_u_Equal __pyx_string_tab[451] -#define __pyx_n_u_FLOOR __pyx_string_tab[452] -#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[453] -#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[454] -#define __pyx_n_u_FOSC __pyx_string_tab[455] -#define __pyx_n_u_FOSC_Stream __pyx_string_tab[456] -#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[457] -#define __pyx_n_u_FRACTAL __pyx_string_tab[458] -#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[459] -#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[460] -#define __pyx_n_u_Far __pyx_string_tab[461] -#define __pyx_n_u_Function __pyx_string_tab[462] -#define __pyx_n_u_Function___call __pyx_string_tab[463] -#define __pyx_n_u_Function___call_function __pyx_string_tab[464] -#define __pyx_n_u_Function___check_opt_input_value __pyx_string_tab[465] -#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[466] -#define __pyx_n_u_Function___init __pyx_string_tab[467] -#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[468] -#define __pyx_n_u_Function___local __pyx_string_tab[469] -#define __pyx_n_u_Function___repr __pyx_string_tab[470] -#define __pyx_n_u_Function___str __pyx_string_tab[471] -#define __pyx_n_u_Function___unicode __pyx_string_tab[472] -#define __pyx_n_u_Function_function_flags __pyx_string_tab[473] -#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[474] -#define __pyx_n_u_Function_get_input_names __pyx_string_tab[475] -#define __pyx_n_u_Function_get_parameters __pyx_string_tab[476] -#define __pyx_n_u_Function_info __pyx_string_tab[477] -#define __pyx_n_u_Function_lookback __pyx_string_tab[478] -#define __pyx_n_u_Function_output_flags __pyx_string_tab[479] -#define __pyx_n_u_Function_output_names __pyx_string_tab[480] -#define __pyx_n_u_Function_outputs __pyx_string_tab[481] -#define __pyx_n_u_Function_run __pyx_string_tab[482] -#define __pyx_n_u_Function_set_function_args __pyx_string_tab[483] -#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[484] -#define __pyx_n_u_Function_set_input_names __pyx_string_tab[485] -#define __pyx_n_u_Function_set_parameters __pyx_string_tab[486] -#define __pyx_n_u_HA __pyx_string_tab[487] -#define __pyx_n_u_HA_Stream __pyx_string_tab[488] -#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[489] -#define __pyx_n_u_HMA __pyx_string_tab[490] -#define __pyx_n_u_HMA_Stream __pyx_string_tab[491] -#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[492] -#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[493] -#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[494] -#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[495] -#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[496] -#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[497] -#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[498] -#define __pyx_n_u_HT_PHASOR __pyx_string_tab[499] -#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[500] -#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[501] -#define __pyx_n_u_HT_SINE __pyx_string_tab[502] -#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[503] -#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[504] -#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[505] -#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[506] -#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[507] -#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[508] -#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[509] -#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[510] -#define __pyx_n_u_HighLow __pyx_string_tab[511] -#define __pyx_n_u_Histogram __pyx_string_tab[512] -#define __pyx_n_u_IMI __pyx_string_tab[513] -#define __pyx_n_u_IMI_Stream __pyx_string_tab[514] -#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[515] -#define __pyx_n_u_InsufficientHistory __pyx_string_tab[516] -#define __pyx_n_u_KAMA __pyx_string_tab[517] -#define __pyx_n_u_KAMA_Stream __pyx_string_tab[518] -#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[519] -#define __pyx_n_u_KC __pyx_string_tab[520] -#define __pyx_n_u_KC_Stream __pyx_string_tab[521] -#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[522] -#define __pyx_n_u_KDJ __pyx_string_tab[523] -#define __pyx_n_u_KDJ_Stream __pyx_string_tab[524] -#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[525] -#define __pyx_n_u_LINEARREG __pyx_string_tab[526] -#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[527] -#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[528] -#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[529] -#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[530] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[531] -#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[532] -#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[533] -#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[534] -#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[535] -#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[536] -#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[537] -#define __pyx_n_u_LN __pyx_string_tab[538] -#define __pyx_n_u_LN_Stream __pyx_string_tab[539] -#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[540] -#define __pyx_n_u_LOG10 __pyx_string_tab[541] -#define __pyx_n_u_LOG10_Stream __pyx_string_tab[542] -#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[543] -#define __pyx_n_u_Line __pyx_string_tab[544] -#define __pyx_n_u_MA __pyx_string_tab[545] -#define __pyx_n_u_MACD __pyx_string_tab[546] -#define __pyx_n_u_MACDEXT __pyx_string_tab[547] -#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[548] -#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[549] -#define __pyx_n_u_MACDFIX __pyx_string_tab[550] -#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[551] -#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[552] -#define __pyx_n_u_MACD_Stream __pyx_string_tab[553] -#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[554] -#define __pyx_n_u_MAMA __pyx_string_tab[555] -#define __pyx_n_u_MAMA_Stream __pyx_string_tab[556] -#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[557] -#define __pyx_n_u_MARKETFI __pyx_string_tab[558] -#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[559] -#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[560] -#define __pyx_n_u_MASSI __pyx_string_tab[561] -#define __pyx_n_u_MASSI_Stream __pyx_string_tab[562] -#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[563] -#define __pyx_n_u_MAVP __pyx_string_tab[564] -#define __pyx_n_u_MAVP_Stream __pyx_string_tab[565] -#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[566] -#define __pyx_n_u_MAX __pyx_string_tab[567] -#define __pyx_n_u_MAXINDEX __pyx_string_tab[568] -#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[569] -#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[570] -#define __pyx_n_u_MAX_Stream __pyx_string_tab[571] -#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[572] -#define __pyx_n_u_MA_Stream __pyx_string_tab[573] -#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[574] -#define __pyx_n_u_MA_Type __pyx_string_tab[575] -#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[576] -#define __pyx_n_u_MA_Type___init __pyx_string_tab[577] -#define __pyx_n_u_MEDPRICE __pyx_string_tab[578] -#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[579] -#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[580] -#define __pyx_n_u_MFI __pyx_string_tab[581] -#define __pyx_n_u_MFI_Stream __pyx_string_tab[582] -#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[583] -#define __pyx_n_u_MIDPOINT __pyx_string_tab[584] -#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[585] -#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[586] -#define __pyx_n_u_MIDPRICE __pyx_string_tab[587] -#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[588] -#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[589] -#define __pyx_n_u_MIN __pyx_string_tab[590] -#define __pyx_n_u_MININDEX __pyx_string_tab[591] -#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[592] -#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[593] -#define __pyx_n_u_MINMAX __pyx_string_tab[594] -#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[595] -#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[596] -#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[597] -#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[598] -#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[599] -#define __pyx_n_u_MINUS_DI __pyx_string_tab[600] -#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[601] -#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[602] -#define __pyx_n_u_MINUS_DM __pyx_string_tab[603] -#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[604] -#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[605] -#define __pyx_n_u_MIN_Stream __pyx_string_tab[606] -#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[607] -#define __pyx_n_u_MOM __pyx_string_tab[608] -#define __pyx_n_u_MOM_Stream __pyx_string_tab[609] -#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[610] -#define __pyx_n_u_MULT __pyx_string_tab[611] -#define __pyx_n_u_MULT_Stream __pyx_string_tab[612] -#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[613] -#define __pyx_n_u_NATR __pyx_string_tab[614] -#define __pyx_n_u_NATR_Stream __pyx_string_tab[615] -#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[616] -#define __pyx_n_u_NONE __pyx_string_tab[617] -#define __pyx_n_u_NVI __pyx_string_tab[618] -#define __pyx_n_u_NVI_Stream __pyx_string_tab[619] -#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[620] -#define __pyx_n_u_Near __pyx_string_tab[621] -#define __pyx_n_u_OBV __pyx_string_tab[622] -#define __pyx_n_u_OBV_Stream __pyx_string_tab[623] -#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[624] -#define __pyx_n_u_OrderedDict __pyx_string_tab[625] -#define __pyx_n_u_OutRange __pyx_string_tab[626] -#define __pyx_n_u_PERCENTILE __pyx_string_tab[627] -#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[628] -#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[629] -#define __pyx_n_u_PERCENTRANK __pyx_string_tab[630] -#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[631] -#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[632] -#define __pyx_n_u_PLUS_DI __pyx_string_tab[633] -#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[634] -#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[635] -#define __pyx_n_u_PLUS_DM __pyx_string_tab[636] -#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[637] -#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[638] -#define __pyx_n_u_PPO __pyx_string_tab[639] -#define __pyx_n_u_PPO_Stream __pyx_string_tab[640] -#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[641] -#define __pyx_n_u_PVI __pyx_string_tab[642] -#define __pyx_n_u_PVI_Stream __pyx_string_tab[643] -#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[644] -#define __pyx_n_u_PVO __pyx_string_tab[645] -#define __pyx_n_u_PVO_Stream __pyx_string_tab[646] -#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[647] -#define __pyx_n_u_PVT __pyx_string_tab[648] -#define __pyx_n_u_PVT_Stream __pyx_string_tab[649] -#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[650] -#define __pyx_n_u_QSTICK __pyx_string_tab[651] -#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[652] -#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[653] -#define __pyx_n_u_RMA __pyx_string_tab[654] -#define __pyx_n_u_RMA_Stream __pyx_string_tab[655] -#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[656] -#define __pyx_n_u_ROC __pyx_string_tab[657] -#define __pyx_n_u_ROCP __pyx_string_tab[658] -#define __pyx_n_u_ROCP_Stream __pyx_string_tab[659] -#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[660] -#define __pyx_n_u_ROCR __pyx_string_tab[661] -#define __pyx_n_u_ROCR100 __pyx_string_tab[662] -#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[663] -#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[664] -#define __pyx_n_u_ROCR_Stream __pyx_string_tab[665] -#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[666] -#define __pyx_n_u_ROC_Stream __pyx_string_tab[667] -#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[668] -#define __pyx_n_u_RSI __pyx_string_tab[669] -#define __pyx_n_u_RSI_Stream __pyx_string_tab[670] -#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[671] -#define __pyx_n_u_RVI __pyx_string_tab[672] -#define __pyx_n_u_RVI_Stream __pyx_string_tab[673] -#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[674] -#define __pyx_n_u_RVOL __pyx_string_tab[675] -#define __pyx_n_u_RVOL_Stream __pyx_string_tab[676] -#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[677] -#define __pyx_n_u_RangeType __pyx_string_tab[678] -#define __pyx_n_u_RealBody __pyx_string_tab[679] -#define __pyx_n_u_SAR __pyx_string_tab[680] -#define __pyx_n_u_SAREXT __pyx_string_tab[681] -#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[682] -#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[683] -#define __pyx_n_u_SAR_Stream __pyx_string_tab[684] -#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[685] -#define __pyx_n_u_SIN __pyx_string_tab[686] -#define __pyx_n_u_SINH __pyx_string_tab[687] -#define __pyx_n_u_SINH_Stream __pyx_string_tab[688] -#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[689] -#define __pyx_n_u_SIN_Stream __pyx_string_tab[690] -#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[691] -#define __pyx_n_u_SMA __pyx_string_tab[692] -#define __pyx_n_u_SMA_Stream __pyx_string_tab[693] -#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[694] -#define __pyx_n_u_SMI __pyx_string_tab[695] -#define __pyx_n_u_SMI_Stream __pyx_string_tab[696] -#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[697] -#define __pyx_n_u_SQRT __pyx_string_tab[698] -#define __pyx_n_u_SQRT_Stream __pyx_string_tab[699] -#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[700] -#define __pyx_n_u_STDDEV __pyx_string_tab[701] -#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[702] -#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[703] -#define __pyx_n_u_STOCH __pyx_string_tab[704] -#define __pyx_n_u_STOCHF __pyx_string_tab[705] -#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[706] -#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[707] -#define __pyx_n_u_STOCHRSI __pyx_string_tab[708] -#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[709] -#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[710] -#define __pyx_n_u_STOCH_Stream __pyx_string_tab[711] -#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[712] -#define __pyx_n_u_SUB __pyx_string_tab[713] -#define __pyx_n_u_SUB_Stream __pyx_string_tab[714] -#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[715] -#define __pyx_n_u_SUM __pyx_string_tab[716] -#define __pyx_n_u_SUM_Stream __pyx_string_tab[717] -#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[718] -#define __pyx_n_u_SUPERTREND __pyx_string_tab[719] -#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[720] -#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[721] -#define __pyx_n_u_Series __pyx_string_tab[722] -#define __pyx_n_u_ShadowLong __pyx_string_tab[723] -#define __pyx_n_u_ShadowShort __pyx_string_tab[724] -#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[725] -#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[726] -#define __pyx_n_u_Shadows __pyx_string_tab[727] -#define __pyx_n_u_Stream __pyx_string_tab[728] -#define __pyx_n_u_Stream___copy __pyx_string_tab[729] -#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[730] -#define __pyx_n_u_Stream___reduce __pyx_string_tab[731] -#define __pyx_n_u_T3 __pyx_string_tab[732] -#define __pyx_n_u_T3_Stream __pyx_string_tab[733] -#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[734] -#define __pyx_n_u_TAN __pyx_string_tab[735] -#define __pyx_n_u_TANH __pyx_string_tab[736] -#define __pyx_n_u_TANH_Stream __pyx_string_tab[737] -#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[738] -#define __pyx_n_u_TAN_Stream __pyx_string_tab[739] -#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[740] -#define __pyx_n_u_TA_AC __pyx_string_tab[741] -#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[742] -#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[743] -#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[744] -#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[745] -#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[746] -#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[747] -#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[748] -#define __pyx_n_u_TA_ACOS __pyx_string_tab[749] -#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[750] -#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[751] -#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[752] -#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[753] -#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[754] -#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[755] -#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[756] -#define __pyx_n_u_TA_AC_Open __pyx_string_tab[757] -#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[758] -#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[759] -#define __pyx_n_u_TA_AC_Update __pyx_string_tab[760] -#define __pyx_n_u_TA_AC_Value __pyx_string_tab[761] -#define __pyx_n_u_TA_AD __pyx_string_tab[762] -#define __pyx_n_u_TA_ADD __pyx_string_tab[763] -#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[764] -#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[765] -#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[766] -#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[767] -#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[768] -#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[769] -#define __pyx_n_u_TA_ADOSC __pyx_string_tab[770] -#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[771] -#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[772] -#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[773] -#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[774] -#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[775] -#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[776] -#define __pyx_n_u_TA_ADR __pyx_string_tab[777] -#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[778] -#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[779] -#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[780] -#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[781] -#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[782] -#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[783] -#define __pyx_n_u_TA_ADX __pyx_string_tab[784] -#define __pyx_n_u_TA_ADXR __pyx_string_tab[785] -#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[786] -#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[787] -#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[788] -#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[789] -#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[790] -#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[791] -#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[792] -#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[793] -#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[794] -#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[795] -#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[796] -#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[797] -#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[798] -#define __pyx_n_u_TA_AD_Open __pyx_string_tab[799] -#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[800] -#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[801] -#define __pyx_n_u_TA_AD_Update __pyx_string_tab[802] -#define __pyx_n_u_TA_AD_Value __pyx_string_tab[803] -#define __pyx_n_u_TA_AO __pyx_string_tab[804] -#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[805] -#define __pyx_n_u_TA_AO_Open __pyx_string_tab[806] -#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[807] -#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[808] -#define __pyx_n_u_TA_AO_Update __pyx_string_tab[809] -#define __pyx_n_u_TA_AO_Value __pyx_string_tab[810] -#define __pyx_n_u_TA_APO __pyx_string_tab[811] -#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[812] -#define __pyx_n_u_TA_APO_Open __pyx_string_tab[813] -#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[814] -#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[815] -#define __pyx_n_u_TA_APO_Update __pyx_string_tab[816] -#define __pyx_n_u_TA_APO_Value __pyx_string_tab[817] -#define __pyx_n_u_TA_AROON __pyx_string_tab[818] -#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[819] -#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[820] -#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[821] -#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[822] -#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[823] -#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[824] -#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[825] -#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[826] -#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[827] -#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[828] -#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[829] -#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[830] -#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[831] -#define __pyx_n_u_TA_ASIN __pyx_string_tab[832] -#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[833] -#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[834] -#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[835] -#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[836] -#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[837] -#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[838] -#define __pyx_n_u_TA_ATAN __pyx_string_tab[839] -#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[840] -#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[841] -#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[842] -#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[843] -#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[844] -#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[845] -#define __pyx_n_u_TA_ATR __pyx_string_tab[846] -#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[847] -#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[848] -#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[849] -#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[850] -#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[851] -#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[852] -#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[853] -#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[854] -#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[855] -#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[856] -#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[857] -#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[858] -#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[859] -#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[860] -#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[861] -#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[862] -#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[863] -#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[864] -#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[865] -#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[866] -#define __pyx_n_u_TA_BBANDS __pyx_string_tab[867] -#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[868] -#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[869] -#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[870] -#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[871] -#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[872] -#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[873] -#define __pyx_n_u_TA_BETA __pyx_string_tab[874] -#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[875] -#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[876] -#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[877] -#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[878] -#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[879] -#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[880] -#define __pyx_n_u_TA_BOP __pyx_string_tab[881] -#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[882] -#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[883] -#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[884] -#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[885] -#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[886] -#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[887] -#define __pyx_n_u_TA_CCI __pyx_string_tab[888] -#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[889] -#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[890] -#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[891] -#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[892] -#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[893] -#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[894] -#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[895] -#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[896] -#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[897] -#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[898] -#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[899] -#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[900] -#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[901] -#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[902] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[903] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[904] -#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[905] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[906] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[907] -#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[908] -#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[909] -#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[910] -#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[911] -#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[912] -#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[913] -#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[914] -#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[915] -#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[916] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[917] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[918] -#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[919] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[920] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[921] -#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[922] -#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[923] -#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[924] -#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[925] -#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[926] -#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[927] -#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[928] -#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[929] -#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[930] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[931] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[932] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[933] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[934] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[935] -#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[936] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[937] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[938] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[939] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[940] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[941] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[942] -#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[943] -#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[944] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[945] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[946] -#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[947] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[948] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[949] -#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[950] -#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[951] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[952] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[953] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[954] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[955] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[956] -#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[957] -#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[958] -#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[959] -#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[960] -#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[961] -#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[962] -#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[963] -#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[964] -#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[965] -#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[966] -#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[967] -#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[968] -#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[969] -#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[970] -#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[971] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[972] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[973] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[974] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[975] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[976] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[977] -#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[978] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[979] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[980] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[981] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[982] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[983] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[984] -#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[985] -#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[986] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[987] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[988] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[989] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[990] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[991] -#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[992] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[993] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[994] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[995] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[996] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[997] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[998] -#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[999] -#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1000] -#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1001] -#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1002] -#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1003] -#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1004] -#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1005] -#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1006] -#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1007] -#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1008] -#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1009] -#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1010] -#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1011] -#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1012] -#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1013] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1014] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1015] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1016] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1017] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1018] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1019] -#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1020] -#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1021] -#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1022] -#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1023] -#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1024] -#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1025] -#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1026] -#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1027] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1028] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1029] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1030] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1031] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1032] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1033] -#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1034] -#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1035] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1036] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1037] -#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1038] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1039] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1040] -#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1041] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1042] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1043] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1044] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1045] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1046] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1047] -#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1048] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1049] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1050] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1051] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1052] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1053] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1054] -#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1055] -#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1056] -#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1057] -#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1058] -#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1059] -#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1060] -#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1061] -#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1062] -#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1063] -#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1064] -#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1065] -#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1066] -#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1067] -#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1068] -#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1069] -#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1070] -#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1071] -#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1072] -#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1073] -#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1074] -#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1075] -#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1076] -#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1077] -#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1078] -#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1079] -#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1080] -#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1081] -#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1082] -#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1083] -#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1084] -#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1085] -#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1086] -#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1087] -#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1088] -#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1089] -#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1090] -#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1091] -#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1092] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1093] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1094] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1095] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1096] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1097] -#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1098] -#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1099] -#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1100] -#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1101] -#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1102] -#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1103] -#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1104] -#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1105] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1106] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1107] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1108] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1109] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1110] -#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1111] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1112] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1113] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1114] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1115] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1116] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1117] -#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1118] -#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1119] -#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1120] -#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1121] -#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1122] -#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1123] -#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1124] -#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1125] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1126] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1127] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1128] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1129] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1130] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1131] -#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1132] -#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1133] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1134] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1135] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1136] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1137] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1138] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1139] -#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1140] -#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1141] -#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1142] -#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1143] -#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1144] -#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1145] -#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1146] -#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1147] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1148] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1149] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1150] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1151] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1152] -#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1153] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1154] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1155] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1156] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1157] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1158] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1159] -#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1160] -#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1161] -#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1162] -#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1163] -#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1164] -#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1165] -#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1166] -#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1167] -#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1168] -#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1169] -#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1170] -#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1171] -#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1172] -#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1173] -#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1174] -#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1175] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1176] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1177] -#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1178] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1179] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1180] -#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1181] -#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1182] -#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1183] -#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1184] -#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1185] -#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1186] -#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1187] -#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1188] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1189] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1190] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1191] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1192] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1193] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1194] -#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1195] -#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1196] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1197] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1198] -#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1199] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1200] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1201] -#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1202] -#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1203] -#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1204] -#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1205] -#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1206] -#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1207] -#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1208] -#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1209] -#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1210] -#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1211] -#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1212] -#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1213] -#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1214] -#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1215] -#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1216] -#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1217] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1218] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1219] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1220] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1221] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1222] -#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1223] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1224] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1225] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1226] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1227] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1228] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1229] -#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1230] -#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1231] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1232] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1233] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1234] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1235] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1236] -#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1237] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1238] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1239] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1240] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1241] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1242] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1243] -#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1244] -#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1245] -#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1246] -#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1247] -#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1248] -#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1249] -#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1250] -#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1251] -#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1252] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1253] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1254] -#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1255] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1256] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1257] -#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1258] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1259] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1260] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1261] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1262] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1263] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1264] -#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1265] -#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1266] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1267] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1268] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1269] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1270] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1271] -#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1272] -#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1273] -#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1274] -#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1275] -#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1276] -#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1277] -#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1278] -#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1279] -#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1280] -#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1281] -#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1282] -#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1283] -#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1284] -#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1285] -#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1286] -#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1287] -#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1288] -#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1289] -#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1290] -#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1291] -#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1292] -#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1293] -#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1294] -#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1295] -#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1296] -#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1297] -#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1298] -#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1299] -#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1300] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1301] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1302] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1303] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1304] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1305] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1306] -#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1307] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1308] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1309] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1310] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1311] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1312] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1313] -#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1314] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1315] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1316] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1317] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1318] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1319] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1320] -#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1321] -#define __pyx_n_u_TA_CEIL __pyx_string_tab[1322] -#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1323] -#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1324] -#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1325] -#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1326] -#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1327] -#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1328] -#define __pyx_n_u_TA_CMF __pyx_string_tab[1329] -#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1330] -#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1331] -#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1332] -#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1333] -#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1334] -#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1335] -#define __pyx_n_u_TA_CMO __pyx_string_tab[1336] -#define __pyx_n_u_TA_CMOU __pyx_string_tab[1337] -#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1338] -#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1339] -#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1340] -#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1341] -#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1342] -#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1343] -#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1344] -#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1345] -#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1346] -#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1347] -#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1348] -#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1349] -#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1350] -#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1351] -#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1352] -#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1353] -#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1354] -#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1355] -#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1356] -#define __pyx_n_u_TA_CORREL __pyx_string_tab[1357] -#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1358] -#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1359] -#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1360] -#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1361] -#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1362] -#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1363] -#define __pyx_n_u_TA_COS __pyx_string_tab[1364] -#define __pyx_n_u_TA_COSH __pyx_string_tab[1365] -#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1366] -#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1367] -#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1368] -#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1369] -#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1370] -#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1371] -#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1372] -#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1373] -#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1374] -#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1375] -#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1376] -#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1377] -#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1378] -#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1379] -#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1380] -#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1381] -#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1382] -#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1383] -#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1384] -#define __pyx_n_u_TA_CVI __pyx_string_tab[1385] -#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1386] -#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1387] -#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1388] -#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1389] -#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1390] -#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1391] -#define __pyx_n_u_TA_DEMA __pyx_string_tab[1392] -#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1393] -#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1394] -#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1395] -#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1396] -#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1397] -#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1398] -#define __pyx_n_u_TA_DIV __pyx_string_tab[1399] -#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1400] -#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1401] -#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1402] -#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1403] -#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1404] -#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1405] -#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1406] -#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1407] -#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1408] -#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1409] -#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1410] -#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1411] -#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1412] -#define __pyx_n_u_TA_DPO __pyx_string_tab[1413] -#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1414] -#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1415] -#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1416] -#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1417] -#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1418] -#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1419] -#define __pyx_n_u_TA_DX __pyx_string_tab[1420] -#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1421] -#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1422] -#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1423] -#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1424] -#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1425] -#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1426] -#define __pyx_n_u_TA_EFI __pyx_string_tab[1427] -#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1428] -#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1429] -#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1430] -#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1431] -#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1432] -#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1433] -#define __pyx_n_u_TA_EMA __pyx_string_tab[1434] -#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1435] -#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1436] -#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1437] -#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1438] -#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1439] -#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1440] -#define __pyx_n_u_TA_ER __pyx_string_tab[1441] -#define __pyx_n_u_TA_ERI __pyx_string_tab[1442] -#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1443] -#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1444] -#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1445] -#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1446] -#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1447] -#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1448] -#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1449] -#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1450] -#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1451] -#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1452] -#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1453] -#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1454] -#define __pyx_n_u_TA_EXP __pyx_string_tab[1455] -#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1456] -#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1457] -#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1458] -#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1459] -#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1460] -#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1461] -#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1462] -#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1463] -#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1464] -#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1465] -#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1466] -#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1467] -#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1468] -#define __pyx_n_u_TA_FOSC __pyx_string_tab[1469] -#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1470] -#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1471] -#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1472] -#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1473] -#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1474] -#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1475] -#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1476] -#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1477] -#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1478] -#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1479] -#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1480] -#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1481] -#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1482] -#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1483] -#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1484] -#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1485] -#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1486] -#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1487] -#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1488] -#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1489] -#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1490] -#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1491] -#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1492] -#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1493] -#define __pyx_n_u_TA_HA __pyx_string_tab[1494] -#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1495] -#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1496] -#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1497] -#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1498] -#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1499] -#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1500] -#define __pyx_n_u_TA_HMA __pyx_string_tab[1501] -#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1502] -#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1503] -#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1504] -#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1505] -#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1506] -#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1507] -#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1508] -#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1509] -#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1510] -#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1511] -#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1512] -#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1513] -#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1514] -#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1515] -#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1516] -#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1517] -#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1518] -#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1519] -#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1520] -#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1521] -#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1522] -#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1523] -#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1524] -#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1525] -#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1526] -#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1527] -#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1528] -#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1529] -#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1530] -#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1531] -#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1532] -#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1533] -#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1534] -#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1535] -#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1536] -#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1537] -#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1538] -#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1539] -#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1540] -#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1541] -#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1542] -#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1543] -#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1544] -#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1545] -#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1546] -#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1547] -#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1548] -#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1549] -#define __pyx_n_u_TA_IMI __pyx_string_tab[1550] -#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1551] -#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1552] -#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1553] -#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1554] -#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1555] -#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1556] -#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1557] -#define __pyx_n_u_TA_Initialize __pyx_string_tab[1558] -#define __pyx_n_u_TA_KAMA __pyx_string_tab[1559] -#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1560] -#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1561] -#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1562] -#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1563] -#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1564] -#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1565] -#define __pyx_n_u_TA_KC __pyx_string_tab[1566] -#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1567] -#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1568] -#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1569] -#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1570] -#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1571] -#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1572] -#define __pyx_n_u_TA_KDJ __pyx_string_tab[1573] -#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1574] -#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1575] -#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1576] -#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1577] -#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1578] -#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1579] -#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1580] -#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1581] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1582] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1583] -#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1584] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1585] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1586] -#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1587] -#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1588] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1589] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1590] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1591] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1592] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1593] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1594] -#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1595] -#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1596] -#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1597] -#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1598] -#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1599] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1600] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1601] -#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1602] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1603] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1604] -#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1605] -#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1606] -#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1607] -#define __pyx_n_u_TA_LN __pyx_string_tab[1608] -#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1609] -#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1610] -#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1611] -#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1612] -#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1613] -#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1614] -#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1615] -#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1616] -#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1617] -#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1618] -#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1619] -#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1620] -#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1621] -#define __pyx_n_u_TA_MA __pyx_string_tab[1622] -#define __pyx_n_u_TA_MACD __pyx_string_tab[1623] -#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1624] -#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1625] -#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1626] -#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1627] -#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1628] -#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1629] -#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1630] -#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1631] -#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1632] -#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1633] -#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1634] -#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1635] -#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1636] -#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1637] -#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1638] -#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1639] -#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1640] -#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1641] -#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1642] -#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1643] -#define __pyx_n_u_TA_MAMA __pyx_string_tab[1644] -#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1645] -#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1646] -#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1647] -#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1648] -#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1649] -#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1650] -#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1651] -#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1652] -#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1653] -#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1654] -#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1655] -#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1656] -#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1657] -#define __pyx_n_u_TA_MASSI __pyx_string_tab[1658] -#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1659] -#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1660] -#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1661] -#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1662] -#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1663] -#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1664] -#define __pyx_n_u_TA_MAVP __pyx_string_tab[1665] -#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1666] -#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1667] -#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1668] -#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1669] -#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1670] -#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1671] -#define __pyx_n_u_TA_MAX __pyx_string_tab[1672] -#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1673] -#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1674] -#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1675] -#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1676] -#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1677] -#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1678] -#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1679] -#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1680] -#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1681] -#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1682] -#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1683] -#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1684] -#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1685] -#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1686] -#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1687] -#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1688] -#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1689] -#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1690] -#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1691] -#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1692] -#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1693] -#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1694] -#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1695] -#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1696] -#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1697] -#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1698] -#define __pyx_n_u_TA_MFI __pyx_string_tab[1699] -#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1700] -#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1701] -#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1702] -#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1703] -#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1704] -#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1705] -#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1706] -#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1707] -#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1708] -#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1709] -#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1710] -#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1711] -#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1712] -#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1713] -#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1714] -#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1715] -#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1716] -#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1717] -#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1718] -#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1719] -#define __pyx_n_u_TA_MIN __pyx_string_tab[1720] -#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1721] -#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1722] -#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1723] -#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1724] -#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1725] -#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1726] -#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1727] -#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1728] -#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1729] -#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1730] -#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1731] -#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1732] -#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1733] -#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1734] -#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1735] -#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1736] -#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1737] -#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1738] -#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1739] -#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1740] -#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1741] -#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[1742] -#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[1743] -#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[1744] -#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[1745] -#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[1746] -#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[1747] -#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[1748] -#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[1749] -#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[1750] -#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[1751] -#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[1752] -#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[1753] -#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[1754] -#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[1755] -#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[1756] -#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[1757] -#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[1758] -#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[1759] -#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[1760] -#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[1761] -#define __pyx_n_u_TA_MOM __pyx_string_tab[1762] -#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[1763] -#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[1764] -#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[1765] -#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[1766] -#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[1767] -#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[1768] -#define __pyx_n_u_TA_MULT __pyx_string_tab[1769] -#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[1770] -#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[1771] -#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[1772] -#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[1773] -#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[1774] -#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[1775] -#define __pyx_n_u_TA_NATR __pyx_string_tab[1776] -#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[1777] -#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[1778] -#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[1779] -#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[1780] -#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[1781] -#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[1782] -#define __pyx_n_u_TA_NVI __pyx_string_tab[1783] -#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[1784] -#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[1785] -#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[1786] -#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[1787] -#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[1788] -#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[1789] -#define __pyx_n_u_TA_OBV __pyx_string_tab[1790] -#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[1791] -#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[1792] -#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[1793] -#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[1794] -#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[1795] -#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[1796] -#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[1797] -#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[1798] -#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[1799] -#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[1800] -#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[1801] -#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[1802] -#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[1803] -#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[1804] -#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[1805] -#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[1806] -#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[1807] -#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[1808] -#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[1809] -#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[1810] -#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[1811] -#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[1812] -#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[1813] -#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[1814] -#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[1815] -#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[1816] -#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[1817] -#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[1818] -#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[1819] -#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[1820] -#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[1821] -#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[1822] -#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[1823] -#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[1824] -#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[1825] -#define __pyx_n_u_TA_PPO __pyx_string_tab[1826] -#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[1827] -#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[1828] -#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[1829] -#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[1830] -#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[1831] -#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[1832] -#define __pyx_n_u_TA_PVI __pyx_string_tab[1833] -#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[1834] -#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[1835] -#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[1836] -#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[1837] -#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[1838] -#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[1839] -#define __pyx_n_u_TA_PVO __pyx_string_tab[1840] -#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[1841] -#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[1842] -#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[1843] -#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[1844] -#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[1845] -#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[1846] -#define __pyx_n_u_TA_PVT __pyx_string_tab[1847] -#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[1848] -#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[1849] -#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[1850] -#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[1851] -#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[1852] -#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[1853] -#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[1854] -#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[1855] -#define __pyx_n_u_TA_QSTICK __pyx_string_tab[1856] -#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[1857] -#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[1858] -#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[1859] -#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[1860] -#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[1861] -#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[1862] -#define __pyx_n_u_TA_RMA __pyx_string_tab[1863] -#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[1864] -#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[1865] -#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[1866] -#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[1867] -#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[1868] -#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[1869] -#define __pyx_n_u_TA_ROC __pyx_string_tab[1870] -#define __pyx_n_u_TA_ROCP __pyx_string_tab[1871] -#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[1872] -#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[1873] -#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[1874] -#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[1875] -#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[1876] -#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[1877] -#define __pyx_n_u_TA_ROCR __pyx_string_tab[1878] -#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[1879] -#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[1880] -#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[1881] -#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[1882] -#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[1883] -#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[1884] -#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[1885] -#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[1886] -#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[1887] -#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[1888] -#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[1889] -#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[1890] -#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[1891] -#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[1892] -#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[1893] -#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[1894] -#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[1895] -#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[1896] -#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[1897] -#define __pyx_n_u_TA_RSI __pyx_string_tab[1898] -#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[1899] -#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[1900] -#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[1901] -#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[1902] -#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[1903] -#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[1904] -#define __pyx_n_u_TA_RVI __pyx_string_tab[1905] -#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[1906] -#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[1907] -#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[1908] -#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[1909] -#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[1910] -#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[1911] -#define __pyx_n_u_TA_RVOL __pyx_string_tab[1912] -#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[1913] -#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[1914] -#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[1915] -#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[1916] -#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[1917] -#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[1918] -#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[1919] -#define __pyx_n_u_TA_SAR __pyx_string_tab[1920] -#define __pyx_n_u_TA_SAREXT __pyx_string_tab[1921] -#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[1922] -#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[1923] -#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[1924] -#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[1925] -#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[1926] -#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[1927] -#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[1928] -#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[1929] -#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[1930] -#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[1931] -#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[1932] -#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[1933] -#define __pyx_n_u_TA_SIN __pyx_string_tab[1934] -#define __pyx_n_u_TA_SINH __pyx_string_tab[1935] -#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[1936] -#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[1937] -#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[1938] -#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[1939] -#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[1940] -#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[1941] -#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[1942] -#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[1943] -#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[1944] -#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[1945] -#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[1946] -#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[1947] -#define __pyx_n_u_TA_SMA __pyx_string_tab[1948] -#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[1949] -#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[1950] -#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[1951] -#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[1952] -#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[1953] -#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[1954] -#define __pyx_n_u_TA_SMI __pyx_string_tab[1955] -#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[1956] -#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[1957] -#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[1958] -#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[1959] -#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[1960] -#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[1961] -#define __pyx_n_u_TA_SQRT __pyx_string_tab[1962] -#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[1963] -#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[1964] -#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[1965] -#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[1966] -#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[1967] -#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[1968] -#define __pyx_n_u_TA_STDDEV __pyx_string_tab[1969] -#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[1970] -#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[1971] -#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[1972] -#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[1973] -#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[1974] -#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[1975] -#define __pyx_n_u_TA_STOCH __pyx_string_tab[1976] -#define __pyx_n_u_TA_STOCHF __pyx_string_tab[1977] -#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[1978] -#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[1979] -#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[1980] -#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[1981] -#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[1982] -#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[1983] -#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[1984] -#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[1985] -#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[1986] -#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[1987] -#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[1988] -#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[1989] -#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[1990] -#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[1991] -#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[1992] -#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[1993] -#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[1994] -#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[1995] -#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[1996] -#define __pyx_n_u_TA_SUB __pyx_string_tab[1997] -#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[1998] -#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[1999] -#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2000] -#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2001] -#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2002] -#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2003] -#define __pyx_n_u_TA_SUM __pyx_string_tab[2004] -#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2005] -#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2006] -#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2007] -#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2008] -#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2009] -#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2010] -#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2011] -#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2012] -#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2013] -#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2014] -#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2015] -#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2016] -#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2017] -#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2018] -#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2019] -#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2020] -#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2021] -#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2022] -#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2023] -#define __pyx_n_u_TA_T3 __pyx_string_tab[2024] -#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2025] -#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2026] -#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2027] -#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2028] -#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2029] -#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2030] -#define __pyx_n_u_TA_TAN __pyx_string_tab[2031] -#define __pyx_n_u_TA_TANH __pyx_string_tab[2032] -#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2033] -#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2034] -#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2035] -#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2036] -#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2037] -#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2038] -#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2039] -#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2040] -#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2041] -#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2042] -#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2043] -#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2044] -#define __pyx_n_u_TA_TEMA __pyx_string_tab[2045] -#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2046] -#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2047] -#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2048] -#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2049] -#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2050] -#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2051] -#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2052] -#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2053] -#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2054] -#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2055] -#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2056] -#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2057] -#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2058] -#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2059] -#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2060] -#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2061] -#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2062] -#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2063] -#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2064] -#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2065] -#define __pyx_n_u_TA_TRIX __pyx_string_tab[2066] -#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2067] -#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2068] -#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2069] -#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2070] -#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2071] -#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2072] -#define __pyx_n_u_TA_TSF __pyx_string_tab[2073] -#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2074] -#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2075] -#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2076] -#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2077] -#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2078] -#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2079] -#define __pyx_n_u_TA_TSI __pyx_string_tab[2080] -#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2081] -#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2082] -#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2083] -#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2084] -#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2085] -#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2086] -#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2087] -#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2088] -#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2089] -#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2090] -#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2091] -#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2092] -#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2093] -#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2094] -#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2095] -#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2096] -#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2097] -#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2098] -#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2099] -#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2100] -#define __pyx_n_u_TA_VAR __pyx_string_tab[2101] -#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2102] -#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2103] -#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2104] -#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2105] -#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2106] -#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2107] -#define __pyx_n_u_TA_VHF __pyx_string_tab[2108] -#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2109] -#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2110] -#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2111] -#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2112] -#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2113] -#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2114] -#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2115] -#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2116] -#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2117] -#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2118] -#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2119] -#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2120] -#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2121] -#define __pyx_n_u_TA_VWAP __pyx_string_tab[2122] -#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2123] -#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2124] -#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2125] -#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2126] -#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2127] -#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2128] -#define __pyx_n_u_TA_VWMA __pyx_string_tab[2129] -#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2130] -#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2131] -#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2132] -#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2133] -#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2134] -#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2135] -#define __pyx_n_u_TA_WAD __pyx_string_tab[2136] -#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2137] -#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2138] -#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2139] -#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2140] -#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2141] -#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2142] -#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2143] -#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2144] -#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2145] -#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2146] -#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2147] -#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2148] -#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2149] -#define __pyx_n_u_TA_WILLR __pyx_string_tab[2150] -#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2151] -#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2152] -#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2153] -#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2154] -#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2155] -#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2156] -#define __pyx_n_u_TA_WMA __pyx_string_tab[2157] -#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2158] -#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2159] -#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2160] -#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2161] -#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2162] -#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2163] -#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2164] -#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2165] -#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2166] -#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2167] -#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2168] -#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2169] -#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2170] -#define __pyx_n_u_TEMA __pyx_string_tab[2171] -#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2172] -#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2173] -#define __pyx_n_u_TRANGE __pyx_string_tab[2174] -#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2175] -#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2176] -#define __pyx_n_u_TRIMA __pyx_string_tab[2177] -#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2178] -#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2179] -#define __pyx_n_u_TRIX __pyx_string_tab[2180] -#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2181] -#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2182] -#define __pyx_n_u_TSF __pyx_string_tab[2183] -#define __pyx_n_u_TSF_Stream __pyx_string_tab[2184] -#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2185] -#define __pyx_n_u_TSI __pyx_string_tab[2186] -#define __pyx_n_u_TSI_Stream __pyx_string_tab[2187] -#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2188] -#define __pyx_n_u_TYPPRICE __pyx_string_tab[2189] -#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2190] -#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2191] -#define __pyx_n_u_ULTOSC __pyx_string_tab[2192] -#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2193] -#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2194] -#define __pyx_n_u_VAR __pyx_string_tab[2195] -#define __pyx_n_u_VAR_Stream __pyx_string_tab[2196] -#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2197] -#define __pyx_n_u_VHF __pyx_string_tab[2198] -#define __pyx_n_u_VHF_Stream __pyx_string_tab[2199] -#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2200] -#define __pyx_n_u_VORTEX __pyx_string_tab[2201] -#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2202] -#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2203] -#define __pyx_n_u_VWAP __pyx_string_tab[2204] -#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2205] -#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2206] -#define __pyx_n_u_VWMA __pyx_string_tab[2207] -#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2208] -#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2209] -#define __pyx_n_u_WAD __pyx_string_tab[2210] -#define __pyx_n_u_WAD_Stream __pyx_string_tab[2211] -#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2212] -#define __pyx_n_u_WCLPRICE __pyx_string_tab[2213] -#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2214] -#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2215] -#define __pyx_n_u_WILLR __pyx_string_tab[2216] -#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2217] -#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2218] -#define __pyx_n_u_WMA __pyx_string_tab[2219] -#define __pyx_n_u_WMA_Stream __pyx_string_tab[2220] -#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2221] -#define __pyx_n_u_ZLEMA __pyx_string_tab[2222] -#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2223] -#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2224] -#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2225] -#define __pyx_n_u_Function__call_function __pyx_string_tab[2226] -#define __pyx_n_u_Function__check_opt_input_value __pyx_string_tab[2227] -#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2228] -#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2229] -#define __pyx_n_u_Function__local __pyx_string_tab[2230] -#define __pyx_n_u_Function__localdata __pyx_string_tab[2231] -#define __pyx_n_u_Function__name __pyx_string_tab[2232] -#define __pyx_n_u_Function__namestr __pyx_string_tab[2233] -#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2234] -#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2235] -#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2236] -#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2237] -#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2238] -#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2239] -#define __pyx_n_u_TA_ReadLease __pyx_string_tab[2240] -#define __pyx_n_u_TA_ReadLease___enter __pyx_string_tab[2241] -#define __pyx_n_u_TA_ReadLease___exit __pyx_string_tab[2242] -#define __pyx_n_u_TA_ReadLease___reduce_cython __pyx_string_tab[2243] -#define __pyx_n_u_TA_ReadLease___setstate_cython __pyx_string_tab[2244] -#define __pyx_n_u_TA_WriteLease __pyx_string_tab[2245] -#define __pyx_n_u_TA_WriteLease___enter __pyx_string_tab[2246] -#define __pyx_n_u_TA_WriteLease___exit __pyx_string_tab[2247] -#define __pyx_n_u_TA_WriteLease___reduce_cython __pyx_string_tab[2248] -#define __pyx_n_u_TA_WriteLease___setstate_cython __pyx_string_tab[2249] -#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2250] -#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2251] -#define __pyx_n_u_all __pyx_string_tab[2252] -#define __pyx_n_u_annotate __pyx_string_tab[2253] -#define __pyx_n_u_call __pyx_string_tab[2254] -#define __pyx_n_u_call_function __pyx_string_tab[2255] -#define __pyx_n_u_check_opt_input_value __pyx_string_tab[2256] -#define __pyx_n_u_class_getitem __pyx_string_tab[2257] -#define __pyx_n_u_copy_2 __pyx_string_tab[2258] -#define __pyx_n_u_deepcopy __pyx_string_tab[2259] -#define __pyx_n_u_dict __pyx_string_tab[2260] -#define __pyx_n_u_doc __pyx_string_tab[2261] -#define __pyx_n_u_enter __pyx_string_tab[2262] -#define __pyx_n_u_exit __pyx_string_tab[2263] -#define __pyx_n_u_func __pyx_string_tab[2264] -#define __pyx_n_u_get_flags __pyx_string_tab[2265] -#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2266] -#define __pyx_n_u_getitem __pyx_string_tab[2267] -#define __pyx_n_u_getstate __pyx_string_tab[2268] -#define __pyx_n_u_init __pyx_string_tab[2269] -#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2270] -#define __pyx_n_u_local_2 __pyx_string_tab[2271] -#define __pyx_n_u_main __pyx_string_tab[2272] -#define __pyx_n_u_metaclass __pyx_string_tab[2273] -#define __pyx_n_u_module __pyx_string_tab[2274] -#define __pyx_n_u_mro_entries __pyx_string_tab[2275] -#define __pyx_n_u_name_2 __pyx_string_tab[2276] -#define __pyx_n_u_new __pyx_string_tab[2277] -#define __pyx_n_u_prepare __pyx_string_tab[2278] -#define __pyx_n_u_pyx_checksum __pyx_string_tab[2279] -#define __pyx_n_u_pyx_result __pyx_string_tab[2280] -#define __pyx_n_u_pyx_state __pyx_string_tab[2281] -#define __pyx_n_u_pyx_type __pyx_string_tab[2282] -#define __pyx_n_u_pyx_unpickle__TA_ReadLease __pyx_string_tab[2283] -#define __pyx_n_u_pyx_unpickle__TA_WriteLease __pyx_string_tab[2284] -#define __pyx_n_u_pyx_vtable __pyx_string_tab[2285] -#define __pyx_n_u_qualname __pyx_string_tab[2286] -#define __pyx_n_u_reduce __pyx_string_tab[2287] -#define __pyx_n_u_reduce_cython __pyx_string_tab[2288] -#define __pyx_n_u_reduce_ex __pyx_string_tab[2289] -#define __pyx_n_u_repr __pyx_string_tab[2290] -#define __pyx_n_u_set_name __pyx_string_tab[2291] -#define __pyx_n_u_setstate __pyx_string_tab[2292] -#define __pyx_n_u_setstate_cython __pyx_string_tab[2293] -#define __pyx_n_u_str __pyx_string_tab[2294] -#define __pyx_n_u_ta_version __pyx_string_tab[2295] -#define __pyx_n_u_test __pyx_string_tab[2296] -#define __pyx_n_u_unicode __pyx_string_tab[2297] -#define __pyx_n_u_dict_2 __pyx_string_tab[2298] -#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2299] -#define __pyx_n_u_is_coroutine __pyx_string_tab[2300] -#define __pyx_n_u_lookup __pyx_string_tab[2301] -#define __pyx_n_u_ta_check_success __pyx_string_tab[2302] -#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2303] -#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2304] -#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2305] -#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2306] -#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2307] -#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2308] -#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2309] -#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2310] -#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2311] -#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2312] -#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2313] -#define __pyx_n_u_ta_initialize __pyx_string_tab[2314] -#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2315] -#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2316] -#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2317] -#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2318] -#define __pyx_n_u_ta_shutdown __pyx_string_tab[2319] -#define __pyx_n_u_a_close __pyx_string_tab[2320] -#define __pyx_n_u_a_high __pyx_string_tab[2321] -#define __pyx_n_u_a_low __pyx_string_tab[2322] -#define __pyx_n_u_a_open __pyx_string_tab[2323] -#define __pyx_n_u_a_periods __pyx_string_tab[2324] -#define __pyx_n_u_a_real __pyx_string_tab[2325] -#define __pyx_n_u_a_real0 __pyx_string_tab[2326] -#define __pyx_n_u_a_real1 __pyx_string_tab[2327] -#define __pyx_n_u_a_volume __pyx_string_tab[2328] -#define __pyx_n_u_acceleration __pyx_string_tab[2329] -#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2330] -#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2331] -#define __pyx_n_u_accelerationlong __pyx_string_tab[2332] -#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2333] -#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2334] -#define __pyx_n_u_accelerationshort __pyx_string_tab[2335] -#define __pyx_n_u_acquired __pyx_string_tab[2336] -#define __pyx_n_u_append __pyx_string_tab[2337] -#define __pyx_n_u_arg __pyx_string_tab[2338] -#define __pyx_n_u_args __pyx_string_tab[2339] -#define __pyx_n_u_arrays __pyx_string_tab[2340] -#define __pyx_n_u_ascii __pyx_string_tab[2341] -#define __pyx_n_u_astype __pyx_string_tab[2342] -#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2343] -#define __pyx_n_u_at_exit __pyx_string_tab[2344] -#define __pyx_n_u_atrperiod __pyx_string_tab[2345] -#define __pyx_n_u_avgperiod __pyx_string_tab[2346] -#define __pyx_n_u_b __pyx_string_tab[2347] -#define __pyx_n_u_begidx __pyx_string_tab[2348] -#define __pyx_n_u_bit __pyx_string_tab[2349] -#define __pyx_n_u_bytes2str __pyx_string_tab[2350] -#define __pyx_n_u_c_period __pyx_string_tab[2351] -#define __pyx_n_u_c_value __pyx_string_tab[2352] -#define __pyx_n_u_candlestick __pyx_string_tab[2353] -#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2354] -#define __pyx_n_u_clone __pyx_string_tab[2355] -#define __pyx_n_u_close __pyx_string_tab[2356] -#define __pyx_n_u_collections __pyx_string_tab[2357] -#define __pyx_n_u_column_stack __pyx_string_tab[2358] -#define __pyx_n_u_columns __pyx_string_tab[2359] -#define __pyx_n_u_copy __pyx_string_tab[2360] -#define __pyx_n_u_d __pyx_string_tab[2361] -#define __pyx_n_u_decode __pyx_string_tab[2362] -#define __pyx_n_u_default_value __pyx_string_tab[2363] -#define __pyx_n_u_defaults __pyx_string_tab[2364] -#define __pyx_n_u_description __pyx_string_tab[2365] -#define __pyx_n_u_display_name __pyx_string_tab[2366] -#define __pyx_n_u_docs __pyx_string_tab[2367] -#define __pyx_n_u_documentation __pyx_string_tab[2368] -#define __pyx_n_u_empty __pyx_string_tab[2369] -#define __pyx_n_u_endidx __pyx_string_tab[2370] -#define __pyx_n_u_endswith __pyx_string_tab[2371] -#define __pyx_n_u_enumerate __pyx_string_tab[2372] -#define __pyx_n_u_factor __pyx_string_tab[2373] -#define __pyx_n_u_fastd_matype __pyx_string_tab[2374] -#define __pyx_n_u_fastd_period __pyx_string_tab[2375] -#define __pyx_n_u_fastk_period __pyx_string_tab[2376] -#define __pyx_n_u_fastlimit __pyx_string_tab[2377] -#define __pyx_n_u_fastmatype __pyx_string_tab[2378] -#define __pyx_n_u_fastperiod __pyx_string_tab[2379] -#define __pyx_n_u_firstperiod __pyx_string_tab[2380] -#define __pyx_n_u_flag __pyx_string_tab[2381] -#define __pyx_n_u_flags __pyx_string_tab[2382] -#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2383] -#define __pyx_n_u_func_args __pyx_string_tab[2384] -#define __pyx_n_u_func_info __pyx_string_tab[2385] -#define __pyx_n_u_func_line __pyx_string_tab[2386] -#define __pyx_n_u_func_object __pyx_string_tab[2387] -#define __pyx_n_u_function_flags __pyx_string_tab[2388] -#define __pyx_n_u_function_name __pyx_string_tab[2389] -#define __pyx_n_u_functions __pyx_string_tab[2390] -#define __pyx_n_u_get_input_arrays __pyx_string_tab[2391] -#define __pyx_n_u_get_input_names __pyx_string_tab[2392] -#define __pyx_n_u_get_parameters __pyx_string_tab[2393] -#define __pyx_n_u_group __pyx_string_tab[2394] -#define __pyx_n_u_groups __pyx_string_tab[2395] -#define __pyx_n_u_handle __pyx_string_tab[2396] -#define __pyx_n_u_help __pyx_string_tab[2397] -#define __pyx_n_u_high __pyx_string_tab[2398] -#define __pyx_n_u_historylen __pyx_string_tab[2399] -#define __pyx_n_u_holder __pyx_string_tab[2400] -#define __pyx_n_u_i __pyx_string_tab[2401] -#define __pyx_n_u_id __pyx_string_tab[2402] -#define __pyx_n_u_idx __pyx_string_tab[2403] -#define __pyx_n_u_import_error __pyx_string_tab[2404] -#define __pyx_n_u_in __pyx_string_tab[2405] -#define __pyx_n_u_index __pyx_string_tab[2406] -#define __pyx_n_u_info __pyx_string_tab[2407] -#define __pyx_n_u_input_arrays __pyx_string_tab[2408] -#define __pyx_n_u_input_name __pyx_string_tab[2409] -#define __pyx_n_u_input_names __pyx_string_tab[2410] -#define __pyx_n_u_input_price_series_names __pyx_string_tab[2411] -#define __pyx_n_u_integer __pyx_string_tab[2412] -#define __pyx_n_u_is_empty __pyx_string_tab[2413] -#define __pyx_n_u_items __pyx_string_tab[2414] -#define __pyx_n_u_key __pyx_string_tab[2415] -#define __pyx_n_u_keys __pyx_string_tab[2416] -#define __pyx_n_u_kwargs __pyx_string_tab[2417] -#define __pyx_n_u_leftbars __pyx_string_tab[2418] -#define __pyx_n_u_length __pyx_string_tab[2419] -#define __pyx_n_u_local __pyx_string_tab[2420] -#define __pyx_n_u_lookback __pyx_string_tab[2421] -#define __pyx_n_u_low __pyx_string_tab[2422] -#define __pyx_n_u_lower __pyx_string_tab[2423] -#define __pyx_n_u_matype __pyx_string_tab[2424] -#define __pyx_n_u_maximum __pyx_string_tab[2425] -#define __pyx_n_u_maxperiod __pyx_string_tab[2426] -#define __pyx_n_u_memo __pyx_string_tab[2427] -#define __pyx_n_u_minperiod __pyx_string_tab[2428] -#define __pyx_n_u_missing __pyx_string_tab[2429] -#define __pyx_n_u_missing_keys __pyx_string_tab[2430] -#define __pyx_n_u_module_2 __pyx_string_tab[2431] -#define __pyx_n_u_msg __pyx_string_tab[2432] -#define __pyx_n_u_multiplier __pyx_string_tab[2433] -#define __pyx_n_u_n __pyx_string_tab[2434] -#define __pyx_n_u_name __pyx_string_tab[2435] -#define __pyx_n_u_namedtuple __pyx_string_tab[2436] -#define __pyx_n_u_nan __pyx_string_tab[2437] -#define __pyx_n_u_nbdev __pyx_string_tab[2438] -#define __pyx_n_u_nbdevdn __pyx_string_tab[2439] -#define __pyx_n_u_nbdevup __pyx_string_tab[2440] -#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2441] -#define __pyx_n_u_num_inputs __pyx_string_tab[2442] -#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2443] -#define __pyx_n_u_num_outputs __pyx_string_tab[2444] -#define __pyx_n_u_numpy __pyx_string_tab[2445] -#define __pyx_n_u_object __pyx_string_tab[2446] -#define __pyx_n_u_offsetonreverse __pyx_string_tab[2447] -#define __pyx_n_u_open __pyx_string_tab[2448] -#define __pyx_n_u_openInterest __pyx_string_tab[2449] -#define __pyx_n_u_open_and_fill __pyx_string_tab[2450] -#define __pyx_n_u_optIn __pyx_string_tab[2451] -#define __pyx_n_u_opt_input __pyx_string_tab[2452] -#define __pyx_n_u_opt_input_values __pyx_string_tab[2453] -#define __pyx_n_u_opt_inputs __pyx_string_tab[2454] -#define __pyx_n_u_ordereddict __pyx_string_tab[2455] -#define __pyx_n_u_out __pyx_string_tab[2456] -#define __pyx_n_u_outaroondown __pyx_string_tab[2457] -#define __pyx_n_u_outaroonup __pyx_string_tab[2458] -#define __pyx_n_u_outbearpower __pyx_string_tab[2459] -#define __pyx_n_u_outbegidx __pyx_string_tab[2460] -#define __pyx_n_u_outbullpower __pyx_string_tab[2461] -#define __pyx_n_u_outd __pyx_string_tab[2462] -#define __pyx_n_u_outfama __pyx_string_tab[2463] -#define __pyx_n_u_outfastd __pyx_string_tab[2464] -#define __pyx_n_u_outfastk __pyx_string_tab[2465] -#define __pyx_n_u_outhaclose __pyx_string_tab[2466] -#define __pyx_n_u_outhahigh __pyx_string_tab[2467] -#define __pyx_n_u_outhalow __pyx_string_tab[2468] -#define __pyx_n_u_outhaopen __pyx_string_tab[2469] -#define __pyx_n_u_outinphase __pyx_string_tab[2470] -#define __pyx_n_u_outinteger __pyx_string_tab[2471] -#define __pyx_n_u_outinteger_data __pyx_string_tab[2472] -#define __pyx_n_u_outj __pyx_string_tab[2473] -#define __pyx_n_u_outk __pyx_string_tab[2474] -#define __pyx_n_u_outleadsine __pyx_string_tab[2475] -#define __pyx_n_u_outlowerband __pyx_string_tab[2476] -#define __pyx_n_u_outmacd __pyx_string_tab[2477] -#define __pyx_n_u_outmacdhist __pyx_string_tab[2478] -#define __pyx_n_u_outmacdsignal __pyx_string_tab[2479] -#define __pyx_n_u_outmama __pyx_string_tab[2480] -#define __pyx_n_u_outmax __pyx_string_tab[2481] -#define __pyx_n_u_outmaxidx __pyx_string_tab[2482] -#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2483] -#define __pyx_n_u_outmiddleband __pyx_string_tab[2484] -#define __pyx_n_u_outmin __pyx_string_tab[2485] -#define __pyx_n_u_outminidx __pyx_string_tab[2486] -#define __pyx_n_u_outminidx_data __pyx_string_tab[2487] -#define __pyx_n_u_outminusvi __pyx_string_tab[2488] -#define __pyx_n_u_outnbelement __pyx_string_tab[2489] -#define __pyx_n_u_outplusvi __pyx_string_tab[2490] -#define __pyx_n_u_output __pyx_string_tab[2491] -#define __pyx_n_u_output_flags __pyx_string_tab[2492] -#define __pyx_n_u_output_name __pyx_string_tab[2493] -#define __pyx_n_u_output_names __pyx_string_tab[2494] -#define __pyx_n_u_outputs __pyx_string_tab[2495] -#define __pyx_n_u_outputs_valid __pyx_string_tab[2496] -#define __pyx_n_u_outquadrature __pyx_string_tab[2497] -#define __pyx_n_u_outreal __pyx_string_tab[2498] -#define __pyx_n_u_outreallowerband __pyx_string_tab[2499] -#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2500] -#define __pyx_n_u_outrealupperband __pyx_string_tab[2501] -#define __pyx_n_u_outsine __pyx_string_tab[2502] -#define __pyx_n_u_outslowd __pyx_string_tab[2503] -#define __pyx_n_u_outslowk __pyx_string_tab[2504] -#define __pyx_n_u_outsmi __pyx_string_tab[2505] -#define __pyx_n_u_outsmisignal __pyx_string_tab[2506] -#define __pyx_n_u_outsupertrend __pyx_string_tab[2507] -#define __pyx_n_u_outswinghigh __pyx_string_tab[2508] -#define __pyx_n_u_outswinglow __pyx_string_tab[2509] -#define __pyx_n_u_outtrend __pyx_string_tab[2510] -#define __pyx_n_u_outupperband __pyx_string_tab[2511] -#define __pyx_n_u_pandas __pyx_string_tab[2512] -#define __pyx_n_u_param __pyx_string_tab[2513] -#define __pyx_n_u_param_name __pyx_string_tab[2514] -#define __pyx_n_u_parameters __pyx_string_tab[2515] -#define __pyx_n_u_params __pyx_string_tab[2516] -#define __pyx_n_u_penetration __pyx_string_tab[2517] -#define __pyx_n_u_percentile __pyx_string_tab[2518] -#define __pyx_n_u_period __pyx_string_tab[2519] -#define __pyx_n_u_periods __pyx_string_tab[2520] -#define __pyx_n_u_polars __pyx_string_tab[2521] -#define __pyx_n_u_pop __pyx_string_tab[2522] -#define __pyx_n_u_price __pyx_string_tab[2523] -#define __pyx_n_u_price0 __pyx_string_tab[2524] -#define __pyx_n_u_price1 __pyx_string_tab[2525] -#define __pyx_n_u_price_series __pyx_string_tab[2526] -#define __pyx_n_u_price_series_name_values __pyx_string_tab[2527] -#define __pyx_n_u_prices __pyx_string_tab[2528] -#define __pyx_n_u_property __pyx_string_tab[2529] -#define __pyx_n_u_rangetype __pyx_string_tab[2530] -#define __pyx_n_u_real __pyx_string_tab[2531] -#define __pyx_n_u_real0 __pyx_string_tab[2532] -#define __pyx_n_u_real1 __pyx_string_tab[2533] -#define __pyx_n_u_replace __pyx_string_tab[2534] -#define __pyx_n_u_results __pyx_string_tab[2535] -#define __pyx_n_u_ret __pyx_string_tab[2536] -#define __pyx_n_u_retCode __pyx_string_tab[2537] -#define __pyx_n_u_ret_code __pyx_string_tab[2538] -#define __pyx_n_u_rightbars __pyx_string_tab[2539] -#define __pyx_n_u_roc1period __pyx_string_tab[2540] -#define __pyx_n_u_roc2period __pyx_string_tab[2541] -#define __pyx_n_u_rocperiod __pyx_string_tab[2542] -#define __pyx_n_u_run __pyx_string_tab[2543] -#define __pyx_n_u_s __pyx_string_tab[2544] -#define __pyx_n_u_schema __pyx_string_tab[2545] -#define __pyx_n_u_secondperiod __pyx_string_tab[2546] -#define __pyx_n_u_self __pyx_string_tab[2547] -#define __pyx_n_u_series __pyx_string_tab[2548] -#define __pyx_n_u_set_function_args __pyx_string_tab[2549] -#define __pyx_n_u_set_input_arrays __pyx_string_tab[2550] -#define __pyx_n_u_set_input_names __pyx_string_tab[2551] -#define __pyx_n_u_set_parameters __pyx_string_tab[2552] -#define __pyx_n_u_setdefault __pyx_string_tab[2553] -#define __pyx_n_u_settingtype __pyx_string_tab[2554] -#define __pyx_n_u_signalmatype __pyx_string_tab[2555] -#define __pyx_n_u_signalperiod __pyx_string_tab[2556] -#define __pyx_n_u_skip_first __pyx_string_tab[2557] -#define __pyx_n_u_slowd_matype __pyx_string_tab[2558] -#define __pyx_n_u_slowd_period __pyx_string_tab[2559] -#define __pyx_n_u_slowk_matype __pyx_string_tab[2560] -#define __pyx_n_u_slowk_period __pyx_string_tab[2561] -#define __pyx_n_u_slowlimit __pyx_string_tab[2562] -#define __pyx_n_u_slowmatype __pyx_string_tab[2563] -#define __pyx_n_u_slowperiod __pyx_string_tab[2564] -#define __pyx_n_u_stacklevel __pyx_string_tab[2565] -#define __pyx_n_u_startvalue __pyx_string_tab[2566] -#define __pyx_n_u_state __pyx_string_tab[2567] -#define __pyx_n_u_staticmethod __pyx_string_tab[2568] -#define __pyx_n_u_stddevperiod __pyx_string_tab[2569] -#define __pyx_n_u_str2bytes __pyx_string_tab[2570] -#define __pyx_n_u_stream __pyx_string_tab[2571] -#define __pyx_n_u_sys __pyx_string_tab[2572] -#define __pyx_n_u_table __pyx_string_tab[2573] -#define __pyx_n_u_talib__ta_lib __pyx_string_tab[2574] -#define __pyx_n_u_threading __pyx_string_tab[2575] -#define __pyx_n_u_timeStamp __pyx_string_tab[2576] -#define __pyx_n_u_timeperiod __pyx_string_tab[2577] -#define __pyx_n_u_timeperiod1 __pyx_string_tab[2578] -#define __pyx_n_u_timeperiod2 __pyx_string_tab[2579] -#define __pyx_n_u_timeperiod3 __pyx_string_tab[2580] -#define __pyx_n_u_to_numpy __pyx_string_tab[2581] -#define __pyx_n_u_type_2 __pyx_string_tab[2582] -#define __pyx_n_u_type __pyx_string_tab[2583] -#define __pyx_n_u_unst_id __pyx_string_tab[2584] -#define __pyx_n_u_update __pyx_string_tab[2585] -#define __pyx_n_u_update_info __pyx_string_tab[2586] -#define __pyx_n_u_upper __pyx_string_tab[2587] -#define __pyx_n_u_use_setstate __pyx_string_tab[2588] -#define __pyx_n_u_value __pyx_string_tab[2589] -#define __pyx_n_u_values __pyx_string_tab[2590] -#define __pyx_n_u_version __pyx_string_tab[2591] -#define __pyx_n_u_vfactor __pyx_string_tab[2592] -#define __pyx_n_u_volume __pyx_string_tab[2593] -#define __pyx_n_u_warn __pyx_string_tab[2594] -#define __pyx_n_u_warnings __pyx_string_tab[2595] -#define __pyx_n_u_wmaperiod __pyx_string_tab[2596] -#define __pyx_kp_b_iso88591_q_4q_nA_Q_q_a __pyx_string_tab[2597] -#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[2598] -#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[2599] -#define __pyx_kp_b_iso88591_1F __pyx_string_tab[2600] -#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[2601] -#define __pyx_kp_b_iso88591_q_q_aq_Q_Q __pyx_string_tab[2602] -#define __pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1 __pyx_string_tab[2603] -#define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[2604] -#define __pyx_kp_b_iso88591_a_1_1 __pyx_string_tab[2605] -#define __pyx_kp_b_iso88591_q_q_ST_Q_a __pyx_string_tab[2606] -#define __pyx_kp_b_iso88591_q_1_Q_9 __pyx_string_tab[2607] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A __pyx_string_tab[2608] -#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2609] -#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[2610] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32 __pyx_string_tab[2611] -#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[2612] -#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2613] -#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[2614] -#define __pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2615] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B __pyx_string_tab[2616] -#define __pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax __pyx_string_tab[2617] -#define __pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A __pyx_string_tab[2618] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R __pyx_string_tab[2619] -#define __pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32 __pyx_string_tab[2620] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b __pyx_string_tab[2621] -#define __pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H __pyx_string_tab[2622] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3 __pyx_string_tab[2623] -#define __pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2624] -#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW __pyx_string_tab[2625] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r __pyx_string_tab[2626] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U __pyx_string_tab[2627] -#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[2628] -#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR __pyx_string_tab[2629] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8 __pyx_string_tab[2630] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8 __pyx_string_tab[2631] -#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U __pyx_string_tab[2632] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9 __pyx_string_tab[2633] -#define __pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2634] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q __pyx_string_tab[2635] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A __pyx_string_tab[2636] -#define __pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2637] -#define __pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[2638] -#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2639] -#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7 __pyx_string_tab[2640] -#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we __pyx_string_tab[2641] -#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2642] -#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2643] -#define __pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A __pyx_string_tab[2644] -#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[2645] -#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[2646] -#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[2647] -#define __pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[2648] -#define __pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w __pyx_string_tab[2649] -#define __pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w __pyx_string_tab[2650] -#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[2651] -#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs __pyx_string_tab[2652] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[2653] -#define __pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A __pyx_string_tab[2654] -#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz __pyx_string_tab[2655] -#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7 __pyx_string_tab[2656] -#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[2657] -#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R __pyx_string_tab[2658] -#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D __pyx_string_tab[2659] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[2660] -#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs __pyx_string_tab[2661] -#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w __pyx_string_tab[2662] -#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc __pyx_string_tab[2663] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab __pyx_string_tab[2664] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5 __pyx_string_tab[2665] -#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc __pyx_string_tab[2666] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R __pyx_string_tab[2667] -#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz __pyx_string_tab[2668] -#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[2669] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2 __pyx_string_tab[2670] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[2671] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW __pyx_string_tab[2672] -#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X __pyx_string_tab[2673] -#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R __pyx_string_tab[2674] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13 __pyx_string_tab[2675] -#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2676] -#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2677] -#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2678] -#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[2679] -#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz __pyx_string_tab[2680] -#define __pyx_kp_b_iso88591_aq_xs_q_a_Qa_1 __pyx_string_tab[2681] -#define __pyx_kp_b_iso88591_aq_xs_q_q_q_A_Q_a __pyx_string_tab[2682] -#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_d_7_WA_d_7_Q __pyx_string_tab[2683] -#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_t1G_gQ_t1G_a __pyx_string_tab[2684] -#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[2685] -#define __pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[2686] -#define __pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81 __pyx_string_tab[2687] -#define __pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[2688] -#define __pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[2689] -#define __pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1 __pyx_string_tab[2690] -#define __pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1 __pyx_string_tab[2691] -#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[2692] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa __pyx_string_tab[2693] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2 __pyx_string_tab[2694] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4 __pyx_string_tab[2695] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2 __pyx_string_tab[2696] -#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3 __pyx_string_tab[2697] -#define __pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U __pyx_string_tab[2698] -#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2 __pyx_string_tab[2699] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11 __pyx_string_tab[2700] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8 __pyx_string_tab[2701] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3 __pyx_string_tab[2702] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4 __pyx_string_tab[2703] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8 __pyx_string_tab[2704] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12 __pyx_string_tab[2705] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2 __pyx_string_tab[2706] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7 __pyx_string_tab[2707] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5 __pyx_string_tab[2708] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6 __pyx_string_tab[2709] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9 __pyx_string_tab[2710] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10 __pyx_string_tab[2711] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2 __pyx_string_tab[2712] -#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S __pyx_string_tab[2713] -#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A __pyx_string_tab[2714] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2 __pyx_string_tab[2715] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31 __pyx_string_tab[2716] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A __pyx_string_tab[2717] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q __pyx_string_tab[2718] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a __pyx_string_tab[2719] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H __pyx_string_tab[2720] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1 __pyx_string_tab[2721] -#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2 __pyx_string_tab[2722] -#define __pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3 __pyx_string_tab[2723] -#define __pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3 __pyx_string_tab[2724] -#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w __pyx_string_tab[2725] -#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2 __pyx_string_tab[2726] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2 __pyx_string_tab[2727] -#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w __pyx_string_tab[2728] -#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS __pyx_string_tab[2729] -#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[2730] -#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[2731] -#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[2732] -#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[2733] -#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[2734] -#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[2735] -#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[2736] -#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[2737] -#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[2738] -#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[2739] -#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[2740] -#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a __pyx_string_tab[2741] -#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_A_7_4A_A_QgQ_7_1_A __pyx_string_tab[2742] -#define __pyx_kp_b_iso88591_A __pyx_string_tab[2743] -#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[2744] -#define __pyx_kp_b_iso88591_A_3 __pyx_string_tab[2745] -#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1 __pyx_string_tab[2746] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY __pyx_string_tab[2747] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2748] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2 __pyx_string_tab[2749] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2 __pyx_string_tab[2750] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX __pyx_string_tab[2751] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0 __pyx_string_tab[2752] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2 __pyx_string_tab[2753] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1 __pyx_string_tab[2754] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q __pyx_string_tab[2755] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2 __pyx_string_tab[2756] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A __pyx_string_tab[2757] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7 __pyx_string_tab[2758] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq __pyx_string_tab[2759] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq __pyx_string_tab[2760] -#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[2761] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A __pyx_string_tab[2762] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX __pyx_string_tab[2763] -#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[2764] -#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[2765] -#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2766] -#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y __pyx_string_tab[2767] -#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2768] -#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2769] -#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7 __pyx_string_tab[2770] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1 __pyx_string_tab[2771] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2772] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh __pyx_string_tab[2773] -#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy __pyx_string_tab[2774] -#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2775] -#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2776] -#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7 __pyx_string_tab[2777] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2778] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1 __pyx_string_tab[2779] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7 __pyx_string_tab[2780] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[2781] -#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2 __pyx_string_tab[2782] -#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A __pyx_string_tab[2783] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a __pyx_string_tab[2784] -#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[2785] -#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7 __pyx_string_tab[2786] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2787] -#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q __pyx_string_tab[2788] -#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2789] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[2790] -#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q __pyx_string_tab[2791] -#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[2792] -#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[2793] -#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2794] -#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[2795] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7 __pyx_string_tab[2796] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[2797] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ __pyx_string_tab[2798] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq __pyx_string_tab[2799] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A __pyx_string_tab[2800] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2 __pyx_string_tab[2801] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2 __pyx_string_tab[2802] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7 __pyx_string_tab[2803] -#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa __pyx_string_tab[2804] -#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2805] -#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q __pyx_string_tab[2806] -#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A __pyx_string_tab[2807] -#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2808] -#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[2809] -#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[2810] -#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[2811] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A __pyx_string_tab[2812] -#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q __pyx_string_tab[2813] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[2814] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[2815] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[2816] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2817] -#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2818] -#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[2819] -#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[2820] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf __pyx_string_tab[2821] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2 __pyx_string_tab[2822] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q __pyx_string_tab[2823] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq __pyx_string_tab[2824] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd __pyx_string_tab[2825] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A __pyx_string_tab[2826] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4 __pyx_string_tab[2827] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa __pyx_string_tab[2828] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2 __pyx_string_tab[2829] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA __pyx_string_tab[2830] -#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81 __pyx_string_tab[2831] -#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A __pyx_string_tab[2832] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A __pyx_string_tab[2833] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q __pyx_string_tab[2834] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7 __pyx_string_tab[2835] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a __pyx_string_tab[2836] -#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa __pyx_string_tab[2837] -#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A __pyx_string_tab[2838] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q __pyx_string_tab[2839] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81 __pyx_string_tab[2840] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX __pyx_string_tab[2841] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1 __pyx_string_tab[2842] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A __pyx_string_tab[2843] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2 __pyx_string_tab[2844] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a __pyx_string_tab[2845] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q __pyx_string_tab[2846] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2 __pyx_string_tab[2847] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[2848] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[2849] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41 __pyx_string_tab[2850] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A __pyx_string_tab[2851] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q __pyx_string_tab[2852] -#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2 __pyx_string_tab[2853] -#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2854] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[2855] -#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q __pyx_string_tab[2856] -#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[2857] -#define __pyx_kp_b_iso88591_A_a_4q_aq __pyx_string_tab[2858] -#define __pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U __pyx_string_tab[2859] -#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[2860] -#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[2861] -#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[2862] -#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_aq_4_q_Q_AT_V1A_S __pyx_string_tab[2863] -#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[2864] -#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[2865] -#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[2866] -#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[2867] -#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[2868] -#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[2869] -#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s __pyx_string_tab[2870] -#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[2871] -#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A __pyx_string_tab[2872] -#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[2873] -#define __pyx_kp_b_iso88591_t1_1_l_1_1_l_QoQ_a __pyx_string_tab[2874] -#define __pyx_kp_b_iso88591_Q_A_1_G9JfA_t_1G1_q_1_a_U_4q __pyx_string_tab[2875] -#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_16777216 __pyx_number_tab[27] -#define __pyx_int_33554432 __pyx_number_tab[28] -#define __pyx_int_67108864 __pyx_number_tab[29] -#define __pyx_int_134217728 __pyx_number_tab[30] -#define __pyx_int_238750788 __pyx_number_tab[31] -#define __pyx_int_268435456 __pyx_number_tab[32] -#define __pyx_int_536870912 __pyx_number_tab[33] -#define __pyx_int_1073741824 __pyx_number_tab[34] -#define __pyx_int_neg_2147483648 __pyx_number_tab[35] +#define __pyx_kp_u_An_output_is_display_shifted __pyx_string_tab[32] +#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_numbers __pyx_string_tab[125] +#define __pyx_kp_u_talib_numpy __pyx_string_tab[126] +#define __pyx_kp_u_talib_operator __pyx_string_tab[127] +#define __pyx_kp_u_talib_ordereddict __pyx_string_tab[128] +#define __pyx_kp_u_talib_pandas __pyx_string_tab[129] +#define __pyx_kp_u_talib_polars __pyx_string_tab[130] +#define __pyx_kp_u_talib_sys __pyx_string_tab[131] +#define __pyx_kp_u_talib_threading __pyx_string_tab[132] +#define __pyx_kp_u_talib_warnings __pyx_string_tab[133] +#define __pyx_kp_u_talib__abstract_pxi __pyx_string_tab[134] +#define __pyx_kp_u_talib__common_pxi __pyx_string_tab[135] +#define __pyx_kp_u_talib__func_pxi __pyx_string_tab[136] +#define __pyx_kp_u_talib__stream_pxi __pyx_string_tab[137] +#define __pyx_kp_u_too_many_input_arrays __pyx_string_tab[138] +#define __pyx_kp_u_unstable_period __pyx_string_tab[139] +#define __pyx_n_u_AC __pyx_string_tab[140] +#define __pyx_n_u_ACCBANDS __pyx_string_tab[141] +#define __pyx_n_u_ACCBANDS_Stream __pyx_string_tab[142] +#define __pyx_n_u_ACCBANDS_Stream_open_and_fill __pyx_string_tab[143] +#define __pyx_n_u_ACOS __pyx_string_tab[144] +#define __pyx_n_u_ACOS_Stream __pyx_string_tab[145] +#define __pyx_n_u_ACOS_Stream_open_and_fill __pyx_string_tab[146] +#define __pyx_n_u_AC_Stream __pyx_string_tab[147] +#define __pyx_n_u_AC_Stream_open_and_fill __pyx_string_tab[148] +#define __pyx_n_u_AD __pyx_string_tab[149] +#define __pyx_n_u_ADD __pyx_string_tab[150] +#define __pyx_n_u_ADD_Stream __pyx_string_tab[151] +#define __pyx_n_u_ADD_Stream_open_and_fill __pyx_string_tab[152] +#define __pyx_n_u_ADOSC __pyx_string_tab[153] +#define __pyx_n_u_ADOSC_Stream __pyx_string_tab[154] +#define __pyx_n_u_ADOSC_Stream_open_and_fill __pyx_string_tab[155] +#define __pyx_n_u_ADR __pyx_string_tab[156] +#define __pyx_n_u_ADR_Stream __pyx_string_tab[157] +#define __pyx_n_u_ADR_Stream_open_and_fill __pyx_string_tab[158] +#define __pyx_n_u_ADX __pyx_string_tab[159] +#define __pyx_n_u_ADXR __pyx_string_tab[160] +#define __pyx_n_u_ADXR_Stream __pyx_string_tab[161] +#define __pyx_n_u_ADXR_Stream_open_and_fill __pyx_string_tab[162] +#define __pyx_n_u_ADX_Stream __pyx_string_tab[163] +#define __pyx_n_u_ADX_Stream_open_and_fill __pyx_string_tab[164] +#define __pyx_n_u_AD_Stream __pyx_string_tab[165] +#define __pyx_n_u_AD_Stream_open_and_fill __pyx_string_tab[166] +#define __pyx_n_u_ALL __pyx_string_tab[167] +#define __pyx_n_u_ALMA __pyx_string_tab[168] +#define __pyx_n_u_ALMA_Stream __pyx_string_tab[169] +#define __pyx_n_u_ALMA_Stream_open_and_fill __pyx_string_tab[170] +#define __pyx_n_u_AO __pyx_string_tab[171] +#define __pyx_n_u_AO_Stream __pyx_string_tab[172] +#define __pyx_n_u_AO_Stream_open_and_fill __pyx_string_tab[173] +#define __pyx_n_u_APO __pyx_string_tab[174] +#define __pyx_n_u_APO_Stream __pyx_string_tab[175] +#define __pyx_n_u_APO_Stream_open_and_fill __pyx_string_tab[176] +#define __pyx_n_u_AROON __pyx_string_tab[177] +#define __pyx_n_u_AROONOSC __pyx_string_tab[178] +#define __pyx_n_u_AROONOSC_Stream __pyx_string_tab[179] +#define __pyx_n_u_AROONOSC_Stream_open_and_fill __pyx_string_tab[180] +#define __pyx_n_u_AROON_Stream __pyx_string_tab[181] +#define __pyx_n_u_AROON_Stream_open_and_fill __pyx_string_tab[182] +#define __pyx_n_u_ASI __pyx_string_tab[183] +#define __pyx_n_u_ASIN __pyx_string_tab[184] +#define __pyx_n_u_ASIN_Stream __pyx_string_tab[185] +#define __pyx_n_u_ASIN_Stream_open_and_fill __pyx_string_tab[186] +#define __pyx_n_u_ASI_Stream __pyx_string_tab[187] +#define __pyx_n_u_ASI_Stream_open_and_fill __pyx_string_tab[188] +#define __pyx_n_u_ATAN __pyx_string_tab[189] +#define __pyx_n_u_ATAN_Stream __pyx_string_tab[190] +#define __pyx_n_u_ATAN_Stream_open_and_fill __pyx_string_tab[191] +#define __pyx_n_u_ATR __pyx_string_tab[192] +#define __pyx_n_u_ATR_Stream __pyx_string_tab[193] +#define __pyx_n_u_ATR_Stream_open_and_fill __pyx_string_tab[194] +#define __pyx_n_u_AVGDEV __pyx_string_tab[195] +#define __pyx_n_u_AVGDEV_Stream __pyx_string_tab[196] +#define __pyx_n_u_AVGDEV_Stream_open_and_fill __pyx_string_tab[197] +#define __pyx_n_u_AVGPRICE __pyx_string_tab[198] +#define __pyx_n_u_AVGPRICE_Stream __pyx_string_tab[199] +#define __pyx_n_u_AVGPRICE_Stream_open_and_fill __pyx_string_tab[200] +#define __pyx_n_u_AllCandleSettings __pyx_string_tab[201] +#define __pyx_n_u_BBANDS __pyx_string_tab[202] +#define __pyx_n_u_BBANDS_Stream __pyx_string_tab[203] +#define __pyx_n_u_BBANDS_Stream_open_and_fill __pyx_string_tab[204] +#define __pyx_n_u_BBW __pyx_string_tab[205] +#define __pyx_n_u_BBW_Stream __pyx_string_tab[206] +#define __pyx_n_u_BBW_Stream_open_and_fill __pyx_string_tab[207] +#define __pyx_n_u_BETA __pyx_string_tab[208] +#define __pyx_n_u_BETA_Stream __pyx_string_tab[209] +#define __pyx_n_u_BETA_Stream_open_and_fill __pyx_string_tab[210] +#define __pyx_n_u_BOP __pyx_string_tab[211] +#define __pyx_n_u_BOP_Stream __pyx_string_tab[212] +#define __pyx_n_u_BOP_Stream_open_and_fill __pyx_string_tab[213] +#define __pyx_n_u_BodyDoji __pyx_string_tab[214] +#define __pyx_n_u_BodyLong __pyx_string_tab[215] +#define __pyx_n_u_BodyShort __pyx_string_tab[216] +#define __pyx_n_u_BodyVeryLong __pyx_string_tab[217] +#define __pyx_n_u_CCI __pyx_string_tab[218] +#define __pyx_n_u_CCI_Stream __pyx_string_tab[219] +#define __pyx_n_u_CCI_Stream_open_and_fill __pyx_string_tab[220] +#define __pyx_n_u_CDL2CROWS __pyx_string_tab[221] +#define __pyx_n_u_CDL2CROWS_Stream __pyx_string_tab[222] +#define __pyx_n_u_CDL2CROWS_Stream_open_and_fill __pyx_string_tab[223] +#define __pyx_n_u_CDL3BLACKCROWS __pyx_string_tab[224] +#define __pyx_n_u_CDL3BLACKCROWS_Stream __pyx_string_tab[225] +#define __pyx_n_u_CDL3BLACKCROWS_Stream_open_and_f __pyx_string_tab[226] +#define __pyx_n_u_CDL3INSIDE __pyx_string_tab[227] +#define __pyx_n_u_CDL3INSIDE_Stream __pyx_string_tab[228] +#define __pyx_n_u_CDL3INSIDE_Stream_open_and_fill __pyx_string_tab[229] +#define __pyx_n_u_CDL3LINESTRIKE __pyx_string_tab[230] +#define __pyx_n_u_CDL3LINESTRIKE_Stream __pyx_string_tab[231] +#define __pyx_n_u_CDL3LINESTRIKE_Stream_open_and_f __pyx_string_tab[232] +#define __pyx_n_u_CDL3OUTSIDE __pyx_string_tab[233] +#define __pyx_n_u_CDL3OUTSIDE_Stream __pyx_string_tab[234] +#define __pyx_n_u_CDL3OUTSIDE_Stream_open_and_fill __pyx_string_tab[235] +#define __pyx_n_u_CDL3STARSINSOUTH __pyx_string_tab[236] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream __pyx_string_tab[237] +#define __pyx_n_u_CDL3STARSINSOUTH_Stream_open_and __pyx_string_tab[238] +#define __pyx_n_u_CDL3WHITESOLDIERS __pyx_string_tab[239] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream __pyx_string_tab[240] +#define __pyx_n_u_CDL3WHITESOLDIERS_Stream_open_an __pyx_string_tab[241] +#define __pyx_n_u_CDLABANDONEDBABY __pyx_string_tab[242] +#define __pyx_n_u_CDLABANDONEDBABY_Stream __pyx_string_tab[243] +#define __pyx_n_u_CDLABANDONEDBABY_Stream_open_and __pyx_string_tab[244] +#define __pyx_n_u_CDLADVANCEBLOCK __pyx_string_tab[245] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream __pyx_string_tab[246] +#define __pyx_n_u_CDLADVANCEBLOCK_Stream_open_and __pyx_string_tab[247] +#define __pyx_n_u_CDLBELTHOLD __pyx_string_tab[248] +#define __pyx_n_u_CDLBELTHOLD_Stream __pyx_string_tab[249] +#define __pyx_n_u_CDLBELTHOLD_Stream_open_and_fill __pyx_string_tab[250] +#define __pyx_n_u_CDLBREAKAWAY __pyx_string_tab[251] +#define __pyx_n_u_CDLBREAKAWAY_Stream __pyx_string_tab[252] +#define __pyx_n_u_CDLBREAKAWAY_Stream_open_and_fil __pyx_string_tab[253] +#define __pyx_n_u_CDLCLOSINGMARUBOZU __pyx_string_tab[254] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream __pyx_string_tab[255] +#define __pyx_n_u_CDLCLOSINGMARUBOZU_Stream_open_a __pyx_string_tab[256] +#define __pyx_n_u_CDLCONCEALBABYSWALL __pyx_string_tab[257] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream __pyx_string_tab[258] +#define __pyx_n_u_CDLCONCEALBABYSWALL_Stream_open __pyx_string_tab[259] +#define __pyx_n_u_CDLCOUNTERATTACK __pyx_string_tab[260] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream __pyx_string_tab[261] +#define __pyx_n_u_CDLCOUNTERATTACK_Stream_open_and __pyx_string_tab[262] +#define __pyx_n_u_CDLDARKCLOUDCOVER __pyx_string_tab[263] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream __pyx_string_tab[264] +#define __pyx_n_u_CDLDARKCLOUDCOVER_Stream_open_an __pyx_string_tab[265] +#define __pyx_n_u_CDLDOJI __pyx_string_tab[266] +#define __pyx_n_u_CDLDOJISTAR __pyx_string_tab[267] +#define __pyx_n_u_CDLDOJISTAR_Stream __pyx_string_tab[268] +#define __pyx_n_u_CDLDOJISTAR_Stream_open_and_fill __pyx_string_tab[269] +#define __pyx_n_u_CDLDOJI_Stream __pyx_string_tab[270] +#define __pyx_n_u_CDLDOJI_Stream_open_and_fill __pyx_string_tab[271] +#define __pyx_n_u_CDLDRAGONFLYDOJI __pyx_string_tab[272] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream __pyx_string_tab[273] +#define __pyx_n_u_CDLDRAGONFLYDOJI_Stream_open_and __pyx_string_tab[274] +#define __pyx_n_u_CDLENGULFING __pyx_string_tab[275] +#define __pyx_n_u_CDLENGULFING_Stream __pyx_string_tab[276] +#define __pyx_n_u_CDLENGULFING_Stream_open_and_fil __pyx_string_tab[277] +#define __pyx_n_u_CDLEVENINGDOJISTAR __pyx_string_tab[278] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream __pyx_string_tab[279] +#define __pyx_n_u_CDLEVENINGDOJISTAR_Stream_open_a __pyx_string_tab[280] +#define __pyx_n_u_CDLEVENINGSTAR __pyx_string_tab[281] +#define __pyx_n_u_CDLEVENINGSTAR_Stream __pyx_string_tab[282] +#define __pyx_n_u_CDLEVENINGSTAR_Stream_open_and_f __pyx_string_tab[283] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE __pyx_string_tab[284] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream __pyx_string_tab[285] +#define __pyx_n_u_CDLGAPSIDESIDEWHITE_Stream_open __pyx_string_tab[286] +#define __pyx_n_u_CDLGRAVESTONEDOJI __pyx_string_tab[287] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream __pyx_string_tab[288] +#define __pyx_n_u_CDLGRAVESTONEDOJI_Stream_open_an __pyx_string_tab[289] +#define __pyx_n_u_CDLHAMMER __pyx_string_tab[290] +#define __pyx_n_u_CDLHAMMER_Stream __pyx_string_tab[291] +#define __pyx_n_u_CDLHAMMER_Stream_open_and_fill __pyx_string_tab[292] +#define __pyx_n_u_CDLHANGINGMAN __pyx_string_tab[293] +#define __pyx_n_u_CDLHANGINGMAN_Stream __pyx_string_tab[294] +#define __pyx_n_u_CDLHANGINGMAN_Stream_open_and_fi __pyx_string_tab[295] +#define __pyx_n_u_CDLHARAMI __pyx_string_tab[296] +#define __pyx_n_u_CDLHARAMICROSS __pyx_string_tab[297] +#define __pyx_n_u_CDLHARAMICROSS_Stream __pyx_string_tab[298] +#define __pyx_n_u_CDLHARAMICROSS_Stream_open_and_f __pyx_string_tab[299] +#define __pyx_n_u_CDLHARAMI_Stream __pyx_string_tab[300] +#define __pyx_n_u_CDLHARAMI_Stream_open_and_fill __pyx_string_tab[301] +#define __pyx_n_u_CDLHIGHWAVE __pyx_string_tab[302] +#define __pyx_n_u_CDLHIGHWAVE_Stream __pyx_string_tab[303] +#define __pyx_n_u_CDLHIGHWAVE_Stream_open_and_fill __pyx_string_tab[304] +#define __pyx_n_u_CDLHIKKAKE __pyx_string_tab[305] +#define __pyx_n_u_CDLHIKKAKEMOD __pyx_string_tab[306] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream __pyx_string_tab[307] +#define __pyx_n_u_CDLHIKKAKEMOD_Stream_open_and_fi __pyx_string_tab[308] +#define __pyx_n_u_CDLHIKKAKE_Stream __pyx_string_tab[309] +#define __pyx_n_u_CDLHIKKAKE_Stream_open_and_fill __pyx_string_tab[310] +#define __pyx_n_u_CDLHOMINGPIGEON __pyx_string_tab[311] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream __pyx_string_tab[312] +#define __pyx_n_u_CDLHOMINGPIGEON_Stream_open_and __pyx_string_tab[313] +#define __pyx_n_u_CDLIDENTICAL3CROWS __pyx_string_tab[314] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream __pyx_string_tab[315] +#define __pyx_n_u_CDLIDENTICAL3CROWS_Stream_open_a __pyx_string_tab[316] +#define __pyx_n_u_CDLINNECK __pyx_string_tab[317] +#define __pyx_n_u_CDLINNECK_Stream __pyx_string_tab[318] +#define __pyx_n_u_CDLINNECK_Stream_open_and_fill __pyx_string_tab[319] +#define __pyx_n_u_CDLINVERTEDHAMMER __pyx_string_tab[320] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream __pyx_string_tab[321] +#define __pyx_n_u_CDLINVERTEDHAMMER_Stream_open_an __pyx_string_tab[322] +#define __pyx_n_u_CDLKICKING __pyx_string_tab[323] +#define __pyx_n_u_CDLKICKINGBYLENGTH __pyx_string_tab[324] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream __pyx_string_tab[325] +#define __pyx_n_u_CDLKICKINGBYLENGTH_Stream_open_a __pyx_string_tab[326] +#define __pyx_n_u_CDLKICKING_Stream __pyx_string_tab[327] +#define __pyx_n_u_CDLKICKING_Stream_open_and_fill __pyx_string_tab[328] +#define __pyx_n_u_CDLLADDERBOTTOM __pyx_string_tab[329] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream __pyx_string_tab[330] +#define __pyx_n_u_CDLLADDERBOTTOM_Stream_open_and __pyx_string_tab[331] +#define __pyx_n_u_CDLLONGLEGGEDDOJI __pyx_string_tab[332] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream __pyx_string_tab[333] +#define __pyx_n_u_CDLLONGLEGGEDDOJI_Stream_open_an __pyx_string_tab[334] +#define __pyx_n_u_CDLLONGLINE __pyx_string_tab[335] +#define __pyx_n_u_CDLLONGLINE_Stream __pyx_string_tab[336] +#define __pyx_n_u_CDLLONGLINE_Stream_open_and_fill __pyx_string_tab[337] +#define __pyx_n_u_CDLMARUBOZU __pyx_string_tab[338] +#define __pyx_n_u_CDLMARUBOZU_Stream __pyx_string_tab[339] +#define __pyx_n_u_CDLMARUBOZU_Stream_open_and_fill __pyx_string_tab[340] +#define __pyx_n_u_CDLMATCHINGLOW __pyx_string_tab[341] +#define __pyx_n_u_CDLMATCHINGLOW_Stream __pyx_string_tab[342] +#define __pyx_n_u_CDLMATCHINGLOW_Stream_open_and_f __pyx_string_tab[343] +#define __pyx_n_u_CDLMATHOLD __pyx_string_tab[344] +#define __pyx_n_u_CDLMATHOLD_Stream __pyx_string_tab[345] +#define __pyx_n_u_CDLMATHOLD_Stream_open_and_fill __pyx_string_tab[346] +#define __pyx_n_u_CDLMORNINGDOJISTAR __pyx_string_tab[347] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream __pyx_string_tab[348] +#define __pyx_n_u_CDLMORNINGDOJISTAR_Stream_open_a __pyx_string_tab[349] +#define __pyx_n_u_CDLMORNINGSTAR __pyx_string_tab[350] +#define __pyx_n_u_CDLMORNINGSTAR_Stream __pyx_string_tab[351] +#define __pyx_n_u_CDLMORNINGSTAR_Stream_open_and_f __pyx_string_tab[352] +#define __pyx_n_u_CDLONNECK __pyx_string_tab[353] +#define __pyx_n_u_CDLONNECK_Stream __pyx_string_tab[354] +#define __pyx_n_u_CDLONNECK_Stream_open_and_fill __pyx_string_tab[355] +#define __pyx_n_u_CDLPIERCING __pyx_string_tab[356] +#define __pyx_n_u_CDLPIERCING_Stream __pyx_string_tab[357] +#define __pyx_n_u_CDLPIERCING_Stream_open_and_fill __pyx_string_tab[358] +#define __pyx_n_u_CDLRICKSHAWMAN __pyx_string_tab[359] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream __pyx_string_tab[360] +#define __pyx_n_u_CDLRICKSHAWMAN_Stream_open_and_f __pyx_string_tab[361] +#define __pyx_n_u_CDLRISEFALL3METHODS __pyx_string_tab[362] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream __pyx_string_tab[363] +#define __pyx_n_u_CDLRISEFALL3METHODS_Stream_open __pyx_string_tab[364] +#define __pyx_n_u_CDLSEPARATINGLINES __pyx_string_tab[365] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream __pyx_string_tab[366] +#define __pyx_n_u_CDLSEPARATINGLINES_Stream_open_a __pyx_string_tab[367] +#define __pyx_n_u_CDLSHOOTINGSTAR __pyx_string_tab[368] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream __pyx_string_tab[369] +#define __pyx_n_u_CDLSHOOTINGSTAR_Stream_open_and __pyx_string_tab[370] +#define __pyx_n_u_CDLSHORTLINE __pyx_string_tab[371] +#define __pyx_n_u_CDLSHORTLINE_Stream __pyx_string_tab[372] +#define __pyx_n_u_CDLSHORTLINE_Stream_open_and_fil __pyx_string_tab[373] +#define __pyx_n_u_CDLSPINNINGTOP __pyx_string_tab[374] +#define __pyx_n_u_CDLSPINNINGTOP_Stream __pyx_string_tab[375] +#define __pyx_n_u_CDLSPINNINGTOP_Stream_open_and_f __pyx_string_tab[376] +#define __pyx_n_u_CDLSTALLEDPATTERN __pyx_string_tab[377] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream __pyx_string_tab[378] +#define __pyx_n_u_CDLSTALLEDPATTERN_Stream_open_an __pyx_string_tab[379] +#define __pyx_n_u_CDLSTICKSANDWICH __pyx_string_tab[380] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream __pyx_string_tab[381] +#define __pyx_n_u_CDLSTICKSANDWICH_Stream_open_and __pyx_string_tab[382] +#define __pyx_n_u_CDLTAKURI __pyx_string_tab[383] +#define __pyx_n_u_CDLTAKURI_Stream __pyx_string_tab[384] +#define __pyx_n_u_CDLTAKURI_Stream_open_and_fill __pyx_string_tab[385] +#define __pyx_n_u_CDLTASUKIGAP __pyx_string_tab[386] +#define __pyx_n_u_CDLTASUKIGAP_Stream __pyx_string_tab[387] +#define __pyx_n_u_CDLTASUKIGAP_Stream_open_and_fil __pyx_string_tab[388] +#define __pyx_n_u_CDLTHRUSTING __pyx_string_tab[389] +#define __pyx_n_u_CDLTHRUSTING_Stream __pyx_string_tab[390] +#define __pyx_n_u_CDLTHRUSTING_Stream_open_and_fil __pyx_string_tab[391] +#define __pyx_n_u_CDLTRISTAR __pyx_string_tab[392] +#define __pyx_n_u_CDLTRISTAR_Stream __pyx_string_tab[393] +#define __pyx_n_u_CDLTRISTAR_Stream_open_and_fill __pyx_string_tab[394] +#define __pyx_n_u_CDLUNIQUE3RIVER __pyx_string_tab[395] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream __pyx_string_tab[396] +#define __pyx_n_u_CDLUNIQUE3RIVER_Stream_open_and __pyx_string_tab[397] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS __pyx_string_tab[398] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream __pyx_string_tab[399] +#define __pyx_n_u_CDLUPSIDEGAP2CROWS_Stream_open_a __pyx_string_tab[400] +#define __pyx_n_u_CDLXSIDEGAP3METHODS __pyx_string_tab[401] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream __pyx_string_tab[402] +#define __pyx_n_u_CDLXSIDEGAP3METHODS_Stream_open __pyx_string_tab[403] +#define __pyx_n_u_CEIL __pyx_string_tab[404] +#define __pyx_n_u_CEIL_Stream __pyx_string_tab[405] +#define __pyx_n_u_CEIL_Stream_open_and_fill __pyx_string_tab[406] +#define __pyx_n_u_CG __pyx_string_tab[407] +#define __pyx_n_u_CG_Stream __pyx_string_tab[408] +#define __pyx_n_u_CG_Stream_open_and_fill __pyx_string_tab[409] +#define __pyx_n_u_CHOP __pyx_string_tab[410] +#define __pyx_n_u_CHOPTR __pyx_string_tab[411] +#define __pyx_n_u_CHOPTR_Stream __pyx_string_tab[412] +#define __pyx_n_u_CHOPTR_Stream_open_and_fill __pyx_string_tab[413] +#define __pyx_n_u_CHOP_Stream __pyx_string_tab[414] +#define __pyx_n_u_CHOP_Stream_open_and_fill __pyx_string_tab[415] +#define __pyx_n_u_CKSP __pyx_string_tab[416] +#define __pyx_n_u_CKSP_Stream __pyx_string_tab[417] +#define __pyx_n_u_CKSP_Stream_open_and_fill __pyx_string_tab[418] +#define __pyx_n_u_CMF __pyx_string_tab[419] +#define __pyx_n_u_CMF_Stream __pyx_string_tab[420] +#define __pyx_n_u_CMF_Stream_open_and_fill __pyx_string_tab[421] +#define __pyx_n_u_CMO __pyx_string_tab[422] +#define __pyx_n_u_CMOU __pyx_string_tab[423] +#define __pyx_n_u_CMOU_Stream __pyx_string_tab[424] +#define __pyx_n_u_CMOU_Stream_open_and_fill __pyx_string_tab[425] +#define __pyx_n_u_CMO_Stream __pyx_string_tab[426] +#define __pyx_n_u_CMO_Stream_open_and_fill __pyx_string_tab[427] +#define __pyx_n_u_COPPOCK __pyx_string_tab[428] +#define __pyx_n_u_COPPOCK_Stream __pyx_string_tab[429] +#define __pyx_n_u_COPPOCK_Stream_open_and_fill __pyx_string_tab[430] +#define __pyx_n_u_CORREL __pyx_string_tab[431] +#define __pyx_n_u_CORREL_Stream __pyx_string_tab[432] +#define __pyx_n_u_CORREL_Stream_open_and_fill __pyx_string_tab[433] +#define __pyx_n_u_COS __pyx_string_tab[434] +#define __pyx_n_u_COSH __pyx_string_tab[435] +#define __pyx_n_u_COSH_Stream __pyx_string_tab[436] +#define __pyx_n_u_COSH_Stream_open_and_fill __pyx_string_tab[437] +#define __pyx_n_u_COS_Stream __pyx_string_tab[438] +#define __pyx_n_u_COS_Stream_open_and_fill __pyx_string_tab[439] +#define __pyx_n_u_CRSI __pyx_string_tab[440] +#define __pyx_n_u_CRSI_Stream __pyx_string_tab[441] +#define __pyx_n_u_CRSI_Stream_open_and_fill __pyx_string_tab[442] +#define __pyx_n_u_CTI __pyx_string_tab[443] +#define __pyx_n_u_CTI_Stream __pyx_string_tab[444] +#define __pyx_n_u_CTI_Stream_open_and_fill __pyx_string_tab[445] +#define __pyx_n_u_CUMSUM __pyx_string_tab[446] +#define __pyx_n_u_CUMSUM_Stream __pyx_string_tab[447] +#define __pyx_n_u_CUMSUM_Stream_open_and_fill __pyx_string_tab[448] +#define __pyx_n_u_CVI __pyx_string_tab[449] +#define __pyx_n_u_CVI_Stream __pyx_string_tab[450] +#define __pyx_n_u_CVI_Stream_open_and_fill __pyx_string_tab[451] +#define __pyx_n_u_CandleSettingType __pyx_string_tab[452] +#define __pyx_n_u_DEFAULT __pyx_string_tab[453] +#define __pyx_n_u_DEMA __pyx_string_tab[454] +#define __pyx_n_u_DEMA_Stream __pyx_string_tab[455] +#define __pyx_n_u_DEMA_Stream_open_and_fill __pyx_string_tab[456] +#define __pyx_n_u_DISABLED __pyx_string_tab[457] +#define __pyx_n_u_DIV __pyx_string_tab[458] +#define __pyx_n_u_DIV_Stream __pyx_string_tab[459] +#define __pyx_n_u_DIV_Stream_open_and_fill __pyx_string_tab[460] +#define __pyx_n_u_DONCHIAN __pyx_string_tab[461] +#define __pyx_n_u_DONCHIAN_Stream __pyx_string_tab[462] +#define __pyx_n_u_DONCHIAN_Stream_open_and_fill __pyx_string_tab[463] +#define __pyx_n_u_DOSC __pyx_string_tab[464] +#define __pyx_n_u_DOSC_Stream __pyx_string_tab[465] +#define __pyx_n_u_DOSC_Stream_open_and_fill __pyx_string_tab[466] +#define __pyx_n_u_DPO __pyx_string_tab[467] +#define __pyx_n_u_DPO_Stream __pyx_string_tab[468] +#define __pyx_n_u_DPO_Stream_open_and_fill __pyx_string_tab[469] +#define __pyx_n_u_DX __pyx_string_tab[470] +#define __pyx_n_u_DX_Stream __pyx_string_tab[471] +#define __pyx_n_u_DX_Stream_open_and_fill __pyx_string_tab[472] +#define __pyx_n_u_DataFrame __pyx_string_tab[473] +#define __pyx_n_u_Dot __pyx_string_tab[474] +#define __pyx_n_u_EFI __pyx_string_tab[475] +#define __pyx_n_u_EFI_Stream __pyx_string_tab[476] +#define __pyx_n_u_EFI_Stream_open_and_fill __pyx_string_tab[477] +#define __pyx_n_u_EMA __pyx_string_tab[478] +#define __pyx_n_u_EMA_Stream __pyx_string_tab[479] +#define __pyx_n_u_EMA_Stream_open_and_fill __pyx_string_tab[480] +#define __pyx_n_u_EMV __pyx_string_tab[481] +#define __pyx_n_u_EMV_Stream __pyx_string_tab[482] +#define __pyx_n_u_EMV_Stream_open_and_fill __pyx_string_tab[483] +#define __pyx_n_u_ER __pyx_string_tab[484] +#define __pyx_n_u_ERI __pyx_string_tab[485] +#define __pyx_n_u_ERI_Stream __pyx_string_tab[486] +#define __pyx_n_u_ERI_Stream_open_and_fill __pyx_string_tab[487] +#define __pyx_n_u_ER_Stream __pyx_string_tab[488] +#define __pyx_n_u_ER_Stream_open_and_fill __pyx_string_tab[489] +#define __pyx_n_u_EXP __pyx_string_tab[490] +#define __pyx_n_u_EXP_Stream __pyx_string_tab[491] +#define __pyx_n_u_EXP_Stream_open_and_fill __pyx_string_tab[492] +#define __pyx_n_u_Equal __pyx_string_tab[493] +#define __pyx_n_u_FISHER __pyx_string_tab[494] +#define __pyx_n_u_FISHER_Stream __pyx_string_tab[495] +#define __pyx_n_u_FISHER_Stream_open_and_fill __pyx_string_tab[496] +#define __pyx_n_u_FLOOR __pyx_string_tab[497] +#define __pyx_n_u_FLOOR_Stream __pyx_string_tab[498] +#define __pyx_n_u_FLOOR_Stream_open_and_fill __pyx_string_tab[499] +#define __pyx_n_u_FOSC __pyx_string_tab[500] +#define __pyx_n_u_FOSC_Stream __pyx_string_tab[501] +#define __pyx_n_u_FOSC_Stream_open_and_fill __pyx_string_tab[502] +#define __pyx_n_u_FRACTAL __pyx_string_tab[503] +#define __pyx_n_u_FRACTAL_Stream __pyx_string_tab[504] +#define __pyx_n_u_FRACTAL_Stream_open_and_fill __pyx_string_tab[505] +#define __pyx_n_u_FRAMA __pyx_string_tab[506] +#define __pyx_n_u_FRAMA_Stream __pyx_string_tab[507] +#define __pyx_n_u_FRAMA_Stream_open_and_fill __pyx_string_tab[508] +#define __pyx_n_u_Far __pyx_string_tab[509] +#define __pyx_n_u_Function __pyx_string_tab[510] +#define __pyx_n_u_Function___call __pyx_string_tab[511] +#define __pyx_n_u_Function___call_function __pyx_string_tab[512] +#define __pyx_n_u_Function___get_opt_input_value __pyx_string_tab[513] +#define __pyx_n_u_Function___init __pyx_string_tab[514] +#define __pyx_n_u_Function___input_price_series_na __pyx_string_tab[515] +#define __pyx_n_u_Function___local __pyx_string_tab[516] +#define __pyx_n_u_Function___opt_input_value __pyx_string_tab[517] +#define __pyx_n_u_Function___repr __pyx_string_tab[518] +#define __pyx_n_u_Function___str __pyx_string_tab[519] +#define __pyx_n_u_Function___unicode __pyx_string_tab[520] +#define __pyx_n_u_Function_function_flags __pyx_string_tab[521] +#define __pyx_n_u_Function_get_input_arrays __pyx_string_tab[522] +#define __pyx_n_u_Function_get_input_names __pyx_string_tab[523] +#define __pyx_n_u_Function_get_parameters __pyx_string_tab[524] +#define __pyx_n_u_Function_info __pyx_string_tab[525] +#define __pyx_n_u_Function_lookback __pyx_string_tab[526] +#define __pyx_n_u_Function_output_flags __pyx_string_tab[527] +#define __pyx_n_u_Function_output_names __pyx_string_tab[528] +#define __pyx_n_u_Function_outputs __pyx_string_tab[529] +#define __pyx_n_u_Function_run __pyx_string_tab[530] +#define __pyx_n_u_Function_set_function_args __pyx_string_tab[531] +#define __pyx_n_u_Function_set_input_arrays __pyx_string_tab[532] +#define __pyx_n_u_Function_set_input_names __pyx_string_tab[533] +#define __pyx_n_u_Function_set_parameters __pyx_string_tab[534] +#define __pyx_n_u_HA __pyx_string_tab[535] +#define __pyx_n_u_HA_Stream __pyx_string_tab[536] +#define __pyx_n_u_HA_Stream_open_and_fill __pyx_string_tab[537] +#define __pyx_n_u_HMA __pyx_string_tab[538] +#define __pyx_n_u_HMA_Stream __pyx_string_tab[539] +#define __pyx_n_u_HMA_Stream_open_and_fill __pyx_string_tab[540] +#define __pyx_n_u_HT_DCPERIOD __pyx_string_tab[541] +#define __pyx_n_u_HT_DCPERIOD_Stream __pyx_string_tab[542] +#define __pyx_n_u_HT_DCPERIOD_Stream_open_and_fill __pyx_string_tab[543] +#define __pyx_n_u_HT_DCPHASE __pyx_string_tab[544] +#define __pyx_n_u_HT_DCPHASE_Stream __pyx_string_tab[545] +#define __pyx_n_u_HT_DCPHASE_Stream_open_and_fill __pyx_string_tab[546] +#define __pyx_n_u_HT_PHASOR __pyx_string_tab[547] +#define __pyx_n_u_HT_PHASOR_Stream __pyx_string_tab[548] +#define __pyx_n_u_HT_PHASOR_Stream_open_and_fill __pyx_string_tab[549] +#define __pyx_n_u_HT_SINE __pyx_string_tab[550] +#define __pyx_n_u_HT_SINE_Stream __pyx_string_tab[551] +#define __pyx_n_u_HT_SINE_Stream_open_and_fill __pyx_string_tab[552] +#define __pyx_n_u_HT_TRENDLINE __pyx_string_tab[553] +#define __pyx_n_u_HT_TRENDLINE_Stream __pyx_string_tab[554] +#define __pyx_n_u_HT_TRENDLINE_Stream_open_and_fil __pyx_string_tab[555] +#define __pyx_n_u_HT_TRENDMODE __pyx_string_tab[556] +#define __pyx_n_u_HT_TRENDMODE_Stream __pyx_string_tab[557] +#define __pyx_n_u_HT_TRENDMODE_Stream_open_and_fil __pyx_string_tab[558] +#define __pyx_n_u_HighLow __pyx_string_tab[559] +#define __pyx_n_u_Histogram __pyx_string_tab[560] +#define __pyx_n_u_IBS __pyx_string_tab[561] +#define __pyx_n_u_IBS_Stream __pyx_string_tab[562] +#define __pyx_n_u_IBS_Stream_open_and_fill __pyx_string_tab[563] +#define __pyx_n_u_ICHIMOKU __pyx_string_tab[564] +#define __pyx_n_u_ICHIMOKU_Stream __pyx_string_tab[565] +#define __pyx_n_u_ICHIMOKU_Stream_open_and_fill __pyx_string_tab[566] +#define __pyx_n_u_IMI __pyx_string_tab[567] +#define __pyx_n_u_IMI_Stream __pyx_string_tab[568] +#define __pyx_n_u_IMI_Stream_open_and_fill __pyx_string_tab[569] +#define __pyx_n_u_InsufficientHistory __pyx_string_tab[570] +#define __pyx_n_u_Integral __pyx_string_tab[571] +#define __pyx_n_u_KAMA __pyx_string_tab[572] +#define __pyx_n_u_KAMA_Stream __pyx_string_tab[573] +#define __pyx_n_u_KAMA_Stream_open_and_fill __pyx_string_tab[574] +#define __pyx_n_u_KC __pyx_string_tab[575] +#define __pyx_n_u_KC_Stream __pyx_string_tab[576] +#define __pyx_n_u_KC_Stream_open_and_fill __pyx_string_tab[577] +#define __pyx_n_u_KDJ __pyx_string_tab[578] +#define __pyx_n_u_KDJ_Stream __pyx_string_tab[579] +#define __pyx_n_u_KDJ_Stream_open_and_fill __pyx_string_tab[580] +#define __pyx_n_u_KST __pyx_string_tab[581] +#define __pyx_n_u_KSTEXT __pyx_string_tab[582] +#define __pyx_n_u_KSTEXT_Stream __pyx_string_tab[583] +#define __pyx_n_u_KSTEXT_Stream_open_and_fill __pyx_string_tab[584] +#define __pyx_n_u_KST_Stream __pyx_string_tab[585] +#define __pyx_n_u_KST_Stream_open_and_fill __pyx_string_tab[586] +#define __pyx_n_u_KURTOSIS __pyx_string_tab[587] +#define __pyx_n_u_KURTOSIS_Stream __pyx_string_tab[588] +#define __pyx_n_u_KURTOSIS_Stream_open_and_fill __pyx_string_tab[589] +#define __pyx_n_u_KVO __pyx_string_tab[590] +#define __pyx_n_u_KVO_Stream __pyx_string_tab[591] +#define __pyx_n_u_KVO_Stream_open_and_fill __pyx_string_tab[592] +#define __pyx_n_u_LINEARREG __pyx_string_tab[593] +#define __pyx_n_u_LINEARREG_ANGLE __pyx_string_tab[594] +#define __pyx_n_u_LINEARREG_ANGLE_Stream __pyx_string_tab[595] +#define __pyx_n_u_LINEARREG_ANGLE_Stream_open_and __pyx_string_tab[596] +#define __pyx_n_u_LINEARREG_INTERCEPT __pyx_string_tab[597] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream __pyx_string_tab[598] +#define __pyx_n_u_LINEARREG_INTERCEPT_Stream_open __pyx_string_tab[599] +#define __pyx_n_u_LINEARREG_SLOPE __pyx_string_tab[600] +#define __pyx_n_u_LINEARREG_SLOPE_Stream __pyx_string_tab[601] +#define __pyx_n_u_LINEARREG_SLOPE_Stream_open_and __pyx_string_tab[602] +#define __pyx_n_u_LINEARREG_Stream __pyx_string_tab[603] +#define __pyx_n_u_LINEARREG_Stream_open_and_fill __pyx_string_tab[604] +#define __pyx_n_u_LN __pyx_string_tab[605] +#define __pyx_n_u_LN_Stream __pyx_string_tab[606] +#define __pyx_n_u_LN_Stream_open_and_fill __pyx_string_tab[607] +#define __pyx_n_u_LOG10 __pyx_string_tab[608] +#define __pyx_n_u_LOG10_Stream __pyx_string_tab[609] +#define __pyx_n_u_LOG10_Stream_open_and_fill __pyx_string_tab[610] +#define __pyx_n_u_Line __pyx_string_tab[611] +#define __pyx_n_u_MA __pyx_string_tab[612] +#define __pyx_n_u_MACD __pyx_string_tab[613] +#define __pyx_n_u_MACDEXT __pyx_string_tab[614] +#define __pyx_n_u_MACDEXT_Stream __pyx_string_tab[615] +#define __pyx_n_u_MACDEXT_Stream_open_and_fill __pyx_string_tab[616] +#define __pyx_n_u_MACDFIX __pyx_string_tab[617] +#define __pyx_n_u_MACDFIX_Stream __pyx_string_tab[618] +#define __pyx_n_u_MACDFIX_Stream_open_and_fill __pyx_string_tab[619] +#define __pyx_n_u_MACD_Stream __pyx_string_tab[620] +#define __pyx_n_u_MACD_Stream_open_and_fill __pyx_string_tab[621] +#define __pyx_n_u_MAMA __pyx_string_tab[622] +#define __pyx_n_u_MAMA_Stream __pyx_string_tab[623] +#define __pyx_n_u_MAMA_Stream_open_and_fill __pyx_string_tab[624] +#define __pyx_n_u_MARKETFI __pyx_string_tab[625] +#define __pyx_n_u_MARKETFI_Stream __pyx_string_tab[626] +#define __pyx_n_u_MARKETFI_Stream_open_and_fill __pyx_string_tab[627] +#define __pyx_n_u_MASSI __pyx_string_tab[628] +#define __pyx_n_u_MASSI_Stream __pyx_string_tab[629] +#define __pyx_n_u_MASSI_Stream_open_and_fill __pyx_string_tab[630] +#define __pyx_n_u_MAVP __pyx_string_tab[631] +#define __pyx_n_u_MAVP_Stream __pyx_string_tab[632] +#define __pyx_n_u_MAVP_Stream_open_and_fill __pyx_string_tab[633] +#define __pyx_n_u_MAX __pyx_string_tab[634] +#define __pyx_n_u_MAXINDEX __pyx_string_tab[635] +#define __pyx_n_u_MAXINDEX_Stream __pyx_string_tab[636] +#define __pyx_n_u_MAXINDEX_Stream_open_and_fill __pyx_string_tab[637] +#define __pyx_n_u_MAX_Stream __pyx_string_tab[638] +#define __pyx_n_u_MAX_Stream_open_and_fill __pyx_string_tab[639] +#define __pyx_n_u_MA_Stream __pyx_string_tab[640] +#define __pyx_n_u_MA_Stream_open_and_fill __pyx_string_tab[641] +#define __pyx_n_u_MA_Type __pyx_string_tab[642] +#define __pyx_n_u_MA_Type___getitem __pyx_string_tab[643] +#define __pyx_n_u_MA_Type___init __pyx_string_tab[644] +#define __pyx_n_u_MCGD __pyx_string_tab[645] +#define __pyx_n_u_MCGD_Stream __pyx_string_tab[646] +#define __pyx_n_u_MCGD_Stream_open_and_fill __pyx_string_tab[647] +#define __pyx_n_u_MEDIAN __pyx_string_tab[648] +#define __pyx_n_u_MEDIAN_Stream __pyx_string_tab[649] +#define __pyx_n_u_MEDIAN_Stream_open_and_fill __pyx_string_tab[650] +#define __pyx_n_u_MEDPRICE __pyx_string_tab[651] +#define __pyx_n_u_MEDPRICE_Stream __pyx_string_tab[652] +#define __pyx_n_u_MEDPRICE_Stream_open_and_fill __pyx_string_tab[653] +#define __pyx_n_u_MFI __pyx_string_tab[654] +#define __pyx_n_u_MFI_Stream __pyx_string_tab[655] +#define __pyx_n_u_MFI_Stream_open_and_fill __pyx_string_tab[656] +#define __pyx_n_u_MIDPOINT __pyx_string_tab[657] +#define __pyx_n_u_MIDPOINT_Stream __pyx_string_tab[658] +#define __pyx_n_u_MIDPOINT_Stream_open_and_fill __pyx_string_tab[659] +#define __pyx_n_u_MIDPRICE __pyx_string_tab[660] +#define __pyx_n_u_MIDPRICE_Stream __pyx_string_tab[661] +#define __pyx_n_u_MIDPRICE_Stream_open_and_fill __pyx_string_tab[662] +#define __pyx_n_u_MIN __pyx_string_tab[663] +#define __pyx_n_u_MININDEX __pyx_string_tab[664] +#define __pyx_n_u_MININDEX_Stream __pyx_string_tab[665] +#define __pyx_n_u_MININDEX_Stream_open_and_fill __pyx_string_tab[666] +#define __pyx_n_u_MINMAX __pyx_string_tab[667] +#define __pyx_n_u_MINMAXINDEX __pyx_string_tab[668] +#define __pyx_n_u_MINMAXINDEX_Stream __pyx_string_tab[669] +#define __pyx_n_u_MINMAXINDEX_Stream_open_and_fill __pyx_string_tab[670] +#define __pyx_n_u_MINMAX_Stream __pyx_string_tab[671] +#define __pyx_n_u_MINMAX_Stream_open_and_fill __pyx_string_tab[672] +#define __pyx_n_u_MINUS_DI __pyx_string_tab[673] +#define __pyx_n_u_MINUS_DI_Stream __pyx_string_tab[674] +#define __pyx_n_u_MINUS_DI_Stream_open_and_fill __pyx_string_tab[675] +#define __pyx_n_u_MINUS_DM __pyx_string_tab[676] +#define __pyx_n_u_MINUS_DM_Stream __pyx_string_tab[677] +#define __pyx_n_u_MINUS_DM_Stream_open_and_fill __pyx_string_tab[678] +#define __pyx_n_u_MIN_Stream __pyx_string_tab[679] +#define __pyx_n_u_MIN_Stream_open_and_fill __pyx_string_tab[680] +#define __pyx_n_u_MOM __pyx_string_tab[681] +#define __pyx_n_u_MOM_Stream __pyx_string_tab[682] +#define __pyx_n_u_MOM_Stream_open_and_fill __pyx_string_tab[683] +#define __pyx_n_u_MULT __pyx_string_tab[684] +#define __pyx_n_u_MULT_Stream __pyx_string_tab[685] +#define __pyx_n_u_MULT_Stream_open_and_fill __pyx_string_tab[686] +#define __pyx_n_u_NATR __pyx_string_tab[687] +#define __pyx_n_u_NATR_Stream __pyx_string_tab[688] +#define __pyx_n_u_NATR_Stream_open_and_fill __pyx_string_tab[689] +#define __pyx_n_u_NONE __pyx_string_tab[690] +#define __pyx_n_u_NVI __pyx_string_tab[691] +#define __pyx_n_u_NVI_Stream __pyx_string_tab[692] +#define __pyx_n_u_NVI_Stream_open_and_fill __pyx_string_tab[693] +#define __pyx_n_u_Near __pyx_string_tab[694] +#define __pyx_n_u_OBV __pyx_string_tab[695] +#define __pyx_n_u_OBV_Stream __pyx_string_tab[696] +#define __pyx_n_u_OBV_Stream_open_and_fill __pyx_string_tab[697] +#define __pyx_n_u_OrderedDict __pyx_string_tab[698] +#define __pyx_n_u_OutRange __pyx_string_tab[699] +#define __pyx_n_u_PERCENTB __pyx_string_tab[700] +#define __pyx_n_u_PERCENTB_Stream __pyx_string_tab[701] +#define __pyx_n_u_PERCENTB_Stream_open_and_fill __pyx_string_tab[702] +#define __pyx_n_u_PERCENTILE __pyx_string_tab[703] +#define __pyx_n_u_PERCENTILE_Stream __pyx_string_tab[704] +#define __pyx_n_u_PERCENTILE_Stream_open_and_fill __pyx_string_tab[705] +#define __pyx_n_u_PERCENTRANK __pyx_string_tab[706] +#define __pyx_n_u_PERCENTRANK_Stream __pyx_string_tab[707] +#define __pyx_n_u_PERCENTRANK_Stream_open_and_fill __pyx_string_tab[708] +#define __pyx_n_u_PLUS_DI __pyx_string_tab[709] +#define __pyx_n_u_PLUS_DI_Stream __pyx_string_tab[710] +#define __pyx_n_u_PLUS_DI_Stream_open_and_fill __pyx_string_tab[711] +#define __pyx_n_u_PLUS_DM __pyx_string_tab[712] +#define __pyx_n_u_PLUS_DM_Stream __pyx_string_tab[713] +#define __pyx_n_u_PLUS_DM_Stream_open_and_fill __pyx_string_tab[714] +#define __pyx_n_u_PPO __pyx_string_tab[715] +#define __pyx_n_u_PPO_Stream __pyx_string_tab[716] +#define __pyx_n_u_PPO_Stream_open_and_fill __pyx_string_tab[717] +#define __pyx_n_u_PSO __pyx_string_tab[718] +#define __pyx_n_u_PSO_Stream __pyx_string_tab[719] +#define __pyx_n_u_PSO_Stream_open_and_fill __pyx_string_tab[720] +#define __pyx_n_u_PVI __pyx_string_tab[721] +#define __pyx_n_u_PVI_Stream __pyx_string_tab[722] +#define __pyx_n_u_PVI_Stream_open_and_fill __pyx_string_tab[723] +#define __pyx_n_u_PVO __pyx_string_tab[724] +#define __pyx_n_u_PVO_Stream __pyx_string_tab[725] +#define __pyx_n_u_PVO_Stream_open_and_fill __pyx_string_tab[726] +#define __pyx_n_u_PVT __pyx_string_tab[727] +#define __pyx_n_u_PVT_Stream __pyx_string_tab[728] +#define __pyx_n_u_PVT_Stream_open_and_fill __pyx_string_tab[729] +#define __pyx_n_u_QSTICK __pyx_string_tab[730] +#define __pyx_n_u_QSTICK_Stream __pyx_string_tab[731] +#define __pyx_n_u_QSTICK_Stream_open_and_fill __pyx_string_tab[732] +#define __pyx_n_u_RMA __pyx_string_tab[733] +#define __pyx_n_u_RMA_Stream __pyx_string_tab[734] +#define __pyx_n_u_RMA_Stream_open_and_fill __pyx_string_tab[735] +#define __pyx_n_u_ROC __pyx_string_tab[736] +#define __pyx_n_u_ROCP __pyx_string_tab[737] +#define __pyx_n_u_ROCP_Stream __pyx_string_tab[738] +#define __pyx_n_u_ROCP_Stream_open_and_fill __pyx_string_tab[739] +#define __pyx_n_u_ROCR __pyx_string_tab[740] +#define __pyx_n_u_ROCR100 __pyx_string_tab[741] +#define __pyx_n_u_ROCR100_Stream __pyx_string_tab[742] +#define __pyx_n_u_ROCR100_Stream_open_and_fill __pyx_string_tab[743] +#define __pyx_n_u_ROCR_Stream __pyx_string_tab[744] +#define __pyx_n_u_ROCR_Stream_open_and_fill __pyx_string_tab[745] +#define __pyx_n_u_ROC_Stream __pyx_string_tab[746] +#define __pyx_n_u_ROC_Stream_open_and_fill __pyx_string_tab[747] +#define __pyx_n_u_ROGERSSATCHELL __pyx_string_tab[748] +#define __pyx_n_u_ROGERSSATCHELL_Stream __pyx_string_tab[749] +#define __pyx_n_u_ROGERSSATCHELL_Stream_open_and_f __pyx_string_tab[750] +#define __pyx_n_u_RSI __pyx_string_tab[751] +#define __pyx_n_u_RSI_Stream __pyx_string_tab[752] +#define __pyx_n_u_RSI_Stream_open_and_fill __pyx_string_tab[753] +#define __pyx_n_u_RVI __pyx_string_tab[754] +#define __pyx_n_u_RVIR __pyx_string_tab[755] +#define __pyx_n_u_RVIR_Stream __pyx_string_tab[756] +#define __pyx_n_u_RVIR_Stream_open_and_fill __pyx_string_tab[757] +#define __pyx_n_u_RVI_Stream __pyx_string_tab[758] +#define __pyx_n_u_RVI_Stream_open_and_fill __pyx_string_tab[759] +#define __pyx_n_u_RVOL __pyx_string_tab[760] +#define __pyx_n_u_RVOL_Stream __pyx_string_tab[761] +#define __pyx_n_u_RVOL_Stream_open_and_fill __pyx_string_tab[762] +#define __pyx_n_u_RangeType __pyx_string_tab[763] +#define __pyx_n_u_Real __pyx_string_tab[764] +#define __pyx_n_u_RealBody __pyx_string_tab[765] +#define __pyx_n_u_SAR __pyx_string_tab[766] +#define __pyx_n_u_SAREXT __pyx_string_tab[767] +#define __pyx_n_u_SAREXT_Stream __pyx_string_tab[768] +#define __pyx_n_u_SAREXT_Stream_open_and_fill __pyx_string_tab[769] +#define __pyx_n_u_SAR_Stream __pyx_string_tab[770] +#define __pyx_n_u_SAR_Stream_open_and_fill __pyx_string_tab[771] +#define __pyx_n_u_SI __pyx_string_tab[772] +#define __pyx_n_u_SIN __pyx_string_tab[773] +#define __pyx_n_u_SINH __pyx_string_tab[774] +#define __pyx_n_u_SINH_Stream __pyx_string_tab[775] +#define __pyx_n_u_SINH_Stream_open_and_fill __pyx_string_tab[776] +#define __pyx_n_u_SIN_Stream __pyx_string_tab[777] +#define __pyx_n_u_SIN_Stream_open_and_fill __pyx_string_tab[778] +#define __pyx_n_u_SI_Stream __pyx_string_tab[779] +#define __pyx_n_u_SI_Stream_open_and_fill __pyx_string_tab[780] +#define __pyx_n_u_SMA __pyx_string_tab[781] +#define __pyx_n_u_SMA_Stream __pyx_string_tab[782] +#define __pyx_n_u_SMA_Stream_open_and_fill __pyx_string_tab[783] +#define __pyx_n_u_SMI __pyx_string_tab[784] +#define __pyx_n_u_SMI_Stream __pyx_string_tab[785] +#define __pyx_n_u_SMI_Stream_open_and_fill __pyx_string_tab[786] +#define __pyx_n_u_SQRT __pyx_string_tab[787] +#define __pyx_n_u_SQRT_Stream __pyx_string_tab[788] +#define __pyx_n_u_SQRT_Stream_open_and_fill __pyx_string_tab[789] +#define __pyx_n_u_SQZMOM __pyx_string_tab[790] +#define __pyx_n_u_SQZMOM_Stream __pyx_string_tab[791] +#define __pyx_n_u_SQZMOM_Stream_open_and_fill __pyx_string_tab[792] +#define __pyx_n_u_STC __pyx_string_tab[793] +#define __pyx_n_u_STC_Stream __pyx_string_tab[794] +#define __pyx_n_u_STC_Stream_open_and_fill __pyx_string_tab[795] +#define __pyx_n_u_STDDEV __pyx_string_tab[796] +#define __pyx_n_u_STDDEV_Stream __pyx_string_tab[797] +#define __pyx_n_u_STDDEV_Stream_open_and_fill __pyx_string_tab[798] +#define __pyx_n_u_STOCH __pyx_string_tab[799] +#define __pyx_n_u_STOCHF __pyx_string_tab[800] +#define __pyx_n_u_STOCHF_Stream __pyx_string_tab[801] +#define __pyx_n_u_STOCHF_Stream_open_and_fill __pyx_string_tab[802] +#define __pyx_n_u_STOCHRSI __pyx_string_tab[803] +#define __pyx_n_u_STOCHRSI_Stream __pyx_string_tab[804] +#define __pyx_n_u_STOCHRSI_Stream_open_and_fill __pyx_string_tab[805] +#define __pyx_n_u_STOCH_Stream __pyx_string_tab[806] +#define __pyx_n_u_STOCH_Stream_open_and_fill __pyx_string_tab[807] +#define __pyx_n_u_SUB __pyx_string_tab[808] +#define __pyx_n_u_SUB_Stream __pyx_string_tab[809] +#define __pyx_n_u_SUB_Stream_open_and_fill __pyx_string_tab[810] +#define __pyx_n_u_SUM __pyx_string_tab[811] +#define __pyx_n_u_SUM_Stream __pyx_string_tab[812] +#define __pyx_n_u_SUM_Stream_open_and_fill __pyx_string_tab[813] +#define __pyx_n_u_SUPERTREND __pyx_string_tab[814] +#define __pyx_n_u_SUPERTREND_Stream __pyx_string_tab[815] +#define __pyx_n_u_SUPERTREND_Stream_open_and_fill __pyx_string_tab[816] +#define __pyx_n_u_SWAK_2PHP __pyx_string_tab[817] +#define __pyx_n_u_SWAK_2PHP_Stream __pyx_string_tab[818] +#define __pyx_n_u_SWAK_2PHP_Stream_open_and_fill __pyx_string_tab[819] +#define __pyx_n_u_SWAK_BP __pyx_string_tab[820] +#define __pyx_n_u_SWAK_BP_Stream __pyx_string_tab[821] +#define __pyx_n_u_SWAK_BP_Stream_open_and_fill __pyx_string_tab[822] +#define __pyx_n_u_SWAK_BUTTER __pyx_string_tab[823] +#define __pyx_n_u_SWAK_BUTTER_Stream __pyx_string_tab[824] +#define __pyx_n_u_SWAK_BUTTER_Stream_open_and_fill __pyx_string_tab[825] +#define __pyx_n_u_SWAK_GAUSS __pyx_string_tab[826] +#define __pyx_n_u_SWAK_GAUSS_Stream __pyx_string_tab[827] +#define __pyx_n_u_SWAK_GAUSS_Stream_open_and_fill __pyx_string_tab[828] +#define __pyx_n_u_SWAK_HP __pyx_string_tab[829] +#define __pyx_n_u_SWAK_HP_Stream __pyx_string_tab[830] +#define __pyx_n_u_SWAK_HP_Stream_open_and_fill __pyx_string_tab[831] +#define __pyx_n_u_Series __pyx_string_tab[832] +#define __pyx_n_u_ShadowLong __pyx_string_tab[833] +#define __pyx_n_u_ShadowShort __pyx_string_tab[834] +#define __pyx_n_u_ShadowVeryLong __pyx_string_tab[835] +#define __pyx_n_u_ShadowVeryShort __pyx_string_tab[836] +#define __pyx_n_u_Shadows __pyx_string_tab[837] +#define __pyx_n_u_Stream __pyx_string_tab[838] +#define __pyx_n_u_Stream___copy __pyx_string_tab[839] +#define __pyx_n_u_Stream___deepcopy __pyx_string_tab[840] +#define __pyx_n_u_Stream___reduce __pyx_string_tab[841] +#define __pyx_n_u_T3 __pyx_string_tab[842] +#define __pyx_n_u_T3_Stream __pyx_string_tab[843] +#define __pyx_n_u_T3_Stream_open_and_fill __pyx_string_tab[844] +#define __pyx_n_u_TAN __pyx_string_tab[845] +#define __pyx_n_u_TANH __pyx_string_tab[846] +#define __pyx_n_u_TANH_Stream __pyx_string_tab[847] +#define __pyx_n_u_TANH_Stream_open_and_fill __pyx_string_tab[848] +#define __pyx_n_u_TAN_Stream __pyx_string_tab[849] +#define __pyx_n_u_TAN_Stream_open_and_fill __pyx_string_tab[850] +#define __pyx_n_u_TA_AC __pyx_string_tab[851] +#define __pyx_n_u_TA_ACCBANDS __pyx_string_tab[852] +#define __pyx_n_u_TA_ACCBANDS_Clone __pyx_string_tab[853] +#define __pyx_n_u_TA_ACCBANDS_Open __pyx_string_tab[854] +#define __pyx_n_u_TA_ACCBANDS_OpenAndFill __pyx_string_tab[855] +#define __pyx_n_u_TA_ACCBANDS_Peek __pyx_string_tab[856] +#define __pyx_n_u_TA_ACCBANDS_Update __pyx_string_tab[857] +#define __pyx_n_u_TA_ACCBANDS_Value __pyx_string_tab[858] +#define __pyx_n_u_TA_ACOS __pyx_string_tab[859] +#define __pyx_n_u_TA_ACOS_Clone __pyx_string_tab[860] +#define __pyx_n_u_TA_ACOS_Open __pyx_string_tab[861] +#define __pyx_n_u_TA_ACOS_OpenAndFill __pyx_string_tab[862] +#define __pyx_n_u_TA_ACOS_Peek __pyx_string_tab[863] +#define __pyx_n_u_TA_ACOS_Update __pyx_string_tab[864] +#define __pyx_n_u_TA_ACOS_Value __pyx_string_tab[865] +#define __pyx_n_u_TA_AC_Clone __pyx_string_tab[866] +#define __pyx_n_u_TA_AC_Open __pyx_string_tab[867] +#define __pyx_n_u_TA_AC_OpenAndFill __pyx_string_tab[868] +#define __pyx_n_u_TA_AC_Peek __pyx_string_tab[869] +#define __pyx_n_u_TA_AC_Update __pyx_string_tab[870] +#define __pyx_n_u_TA_AC_Value __pyx_string_tab[871] +#define __pyx_n_u_TA_AD __pyx_string_tab[872] +#define __pyx_n_u_TA_ADD __pyx_string_tab[873] +#define __pyx_n_u_TA_ADD_Clone __pyx_string_tab[874] +#define __pyx_n_u_TA_ADD_Open __pyx_string_tab[875] +#define __pyx_n_u_TA_ADD_OpenAndFill __pyx_string_tab[876] +#define __pyx_n_u_TA_ADD_Peek __pyx_string_tab[877] +#define __pyx_n_u_TA_ADD_Update __pyx_string_tab[878] +#define __pyx_n_u_TA_ADD_Value __pyx_string_tab[879] +#define __pyx_n_u_TA_ADOSC __pyx_string_tab[880] +#define __pyx_n_u_TA_ADOSC_Clone __pyx_string_tab[881] +#define __pyx_n_u_TA_ADOSC_Open __pyx_string_tab[882] +#define __pyx_n_u_TA_ADOSC_OpenAndFill __pyx_string_tab[883] +#define __pyx_n_u_TA_ADOSC_Peek __pyx_string_tab[884] +#define __pyx_n_u_TA_ADOSC_Update __pyx_string_tab[885] +#define __pyx_n_u_TA_ADOSC_Value __pyx_string_tab[886] +#define __pyx_n_u_TA_ADR __pyx_string_tab[887] +#define __pyx_n_u_TA_ADR_Clone __pyx_string_tab[888] +#define __pyx_n_u_TA_ADR_Open __pyx_string_tab[889] +#define __pyx_n_u_TA_ADR_OpenAndFill __pyx_string_tab[890] +#define __pyx_n_u_TA_ADR_Peek __pyx_string_tab[891] +#define __pyx_n_u_TA_ADR_Update __pyx_string_tab[892] +#define __pyx_n_u_TA_ADR_Value __pyx_string_tab[893] +#define __pyx_n_u_TA_ADX __pyx_string_tab[894] +#define __pyx_n_u_TA_ADXR __pyx_string_tab[895] +#define __pyx_n_u_TA_ADXR_Clone __pyx_string_tab[896] +#define __pyx_n_u_TA_ADXR_Open __pyx_string_tab[897] +#define __pyx_n_u_TA_ADXR_OpenAndFill __pyx_string_tab[898] +#define __pyx_n_u_TA_ADXR_Peek __pyx_string_tab[899] +#define __pyx_n_u_TA_ADXR_Update __pyx_string_tab[900] +#define __pyx_n_u_TA_ADXR_Value __pyx_string_tab[901] +#define __pyx_n_u_TA_ADX_Clone __pyx_string_tab[902] +#define __pyx_n_u_TA_ADX_Open __pyx_string_tab[903] +#define __pyx_n_u_TA_ADX_OpenAndFill __pyx_string_tab[904] +#define __pyx_n_u_TA_ADX_Peek __pyx_string_tab[905] +#define __pyx_n_u_TA_ADX_Update __pyx_string_tab[906] +#define __pyx_n_u_TA_ADX_Value __pyx_string_tab[907] +#define __pyx_n_u_TA_AD_Clone __pyx_string_tab[908] +#define __pyx_n_u_TA_AD_Open __pyx_string_tab[909] +#define __pyx_n_u_TA_AD_OpenAndFill __pyx_string_tab[910] +#define __pyx_n_u_TA_AD_Peek __pyx_string_tab[911] +#define __pyx_n_u_TA_AD_Update __pyx_string_tab[912] +#define __pyx_n_u_TA_AD_Value __pyx_string_tab[913] +#define __pyx_n_u_TA_ALMA __pyx_string_tab[914] +#define __pyx_n_u_TA_ALMA_Clone __pyx_string_tab[915] +#define __pyx_n_u_TA_ALMA_Open __pyx_string_tab[916] +#define __pyx_n_u_TA_ALMA_OpenAndFill __pyx_string_tab[917] +#define __pyx_n_u_TA_ALMA_Peek __pyx_string_tab[918] +#define __pyx_n_u_TA_ALMA_Update __pyx_string_tab[919] +#define __pyx_n_u_TA_ALMA_Value __pyx_string_tab[920] +#define __pyx_n_u_TA_AO __pyx_string_tab[921] +#define __pyx_n_u_TA_AO_Clone __pyx_string_tab[922] +#define __pyx_n_u_TA_AO_Open __pyx_string_tab[923] +#define __pyx_n_u_TA_AO_OpenAndFill __pyx_string_tab[924] +#define __pyx_n_u_TA_AO_Peek __pyx_string_tab[925] +#define __pyx_n_u_TA_AO_Update __pyx_string_tab[926] +#define __pyx_n_u_TA_AO_Value __pyx_string_tab[927] +#define __pyx_n_u_TA_APO __pyx_string_tab[928] +#define __pyx_n_u_TA_APO_Clone __pyx_string_tab[929] +#define __pyx_n_u_TA_APO_Open __pyx_string_tab[930] +#define __pyx_n_u_TA_APO_OpenAndFill __pyx_string_tab[931] +#define __pyx_n_u_TA_APO_Peek __pyx_string_tab[932] +#define __pyx_n_u_TA_APO_Update __pyx_string_tab[933] +#define __pyx_n_u_TA_APO_Value __pyx_string_tab[934] +#define __pyx_n_u_TA_AROON __pyx_string_tab[935] +#define __pyx_n_u_TA_AROONOSC __pyx_string_tab[936] +#define __pyx_n_u_TA_AROONOSC_Clone __pyx_string_tab[937] +#define __pyx_n_u_TA_AROONOSC_Open __pyx_string_tab[938] +#define __pyx_n_u_TA_AROONOSC_OpenAndFill __pyx_string_tab[939] +#define __pyx_n_u_TA_AROONOSC_Peek __pyx_string_tab[940] +#define __pyx_n_u_TA_AROONOSC_Update __pyx_string_tab[941] +#define __pyx_n_u_TA_AROONOSC_Value __pyx_string_tab[942] +#define __pyx_n_u_TA_AROON_Clone __pyx_string_tab[943] +#define __pyx_n_u_TA_AROON_Open __pyx_string_tab[944] +#define __pyx_n_u_TA_AROON_OpenAndFill __pyx_string_tab[945] +#define __pyx_n_u_TA_AROON_Peek __pyx_string_tab[946] +#define __pyx_n_u_TA_AROON_Update __pyx_string_tab[947] +#define __pyx_n_u_TA_AROON_Value __pyx_string_tab[948] +#define __pyx_n_u_TA_ASI __pyx_string_tab[949] +#define __pyx_n_u_TA_ASIN __pyx_string_tab[950] +#define __pyx_n_u_TA_ASIN_Clone __pyx_string_tab[951] +#define __pyx_n_u_TA_ASIN_Open __pyx_string_tab[952] +#define __pyx_n_u_TA_ASIN_OpenAndFill __pyx_string_tab[953] +#define __pyx_n_u_TA_ASIN_Peek __pyx_string_tab[954] +#define __pyx_n_u_TA_ASIN_Update __pyx_string_tab[955] +#define __pyx_n_u_TA_ASIN_Value __pyx_string_tab[956] +#define __pyx_n_u_TA_ASI_Clone __pyx_string_tab[957] +#define __pyx_n_u_TA_ASI_Open __pyx_string_tab[958] +#define __pyx_n_u_TA_ASI_OpenAndFill __pyx_string_tab[959] +#define __pyx_n_u_TA_ASI_Peek __pyx_string_tab[960] +#define __pyx_n_u_TA_ASI_Update __pyx_string_tab[961] +#define __pyx_n_u_TA_ASI_Value __pyx_string_tab[962] +#define __pyx_n_u_TA_ATAN __pyx_string_tab[963] +#define __pyx_n_u_TA_ATAN_Clone __pyx_string_tab[964] +#define __pyx_n_u_TA_ATAN_Open __pyx_string_tab[965] +#define __pyx_n_u_TA_ATAN_OpenAndFill __pyx_string_tab[966] +#define __pyx_n_u_TA_ATAN_Peek __pyx_string_tab[967] +#define __pyx_n_u_TA_ATAN_Update __pyx_string_tab[968] +#define __pyx_n_u_TA_ATAN_Value __pyx_string_tab[969] +#define __pyx_n_u_TA_ATR __pyx_string_tab[970] +#define __pyx_n_u_TA_ATR_Clone __pyx_string_tab[971] +#define __pyx_n_u_TA_ATR_Open __pyx_string_tab[972] +#define __pyx_n_u_TA_ATR_OpenAndFill __pyx_string_tab[973] +#define __pyx_n_u_TA_ATR_Peek __pyx_string_tab[974] +#define __pyx_n_u_TA_ATR_Update __pyx_string_tab[975] +#define __pyx_n_u_TA_ATR_Value __pyx_string_tab[976] +#define __pyx_n_u_TA_AVGDEV __pyx_string_tab[977] +#define __pyx_n_u_TA_AVGDEV_Clone __pyx_string_tab[978] +#define __pyx_n_u_TA_AVGDEV_Open __pyx_string_tab[979] +#define __pyx_n_u_TA_AVGDEV_OpenAndFill __pyx_string_tab[980] +#define __pyx_n_u_TA_AVGDEV_Peek __pyx_string_tab[981] +#define __pyx_n_u_TA_AVGDEV_Update __pyx_string_tab[982] +#define __pyx_n_u_TA_AVGDEV_Value __pyx_string_tab[983] +#define __pyx_n_u_TA_AVGPRICE __pyx_string_tab[984] +#define __pyx_n_u_TA_AVGPRICE_Clone __pyx_string_tab[985] +#define __pyx_n_u_TA_AVGPRICE_Open __pyx_string_tab[986] +#define __pyx_n_u_TA_AVGPRICE_OpenAndFill __pyx_string_tab[987] +#define __pyx_n_u_TA_AVGPRICE_Peek __pyx_string_tab[988] +#define __pyx_n_u_TA_AVGPRICE_Update __pyx_string_tab[989] +#define __pyx_n_u_TA_AVGPRICE_Value __pyx_string_tab[990] +#define __pyx_n_u_TA_BBANDS __pyx_string_tab[991] +#define __pyx_n_u_TA_BBANDS_Clone __pyx_string_tab[992] +#define __pyx_n_u_TA_BBANDS_Open __pyx_string_tab[993] +#define __pyx_n_u_TA_BBANDS_OpenAndFill __pyx_string_tab[994] +#define __pyx_n_u_TA_BBANDS_Peek __pyx_string_tab[995] +#define __pyx_n_u_TA_BBANDS_Update __pyx_string_tab[996] +#define __pyx_n_u_TA_BBANDS_Value __pyx_string_tab[997] +#define __pyx_n_u_TA_BBW __pyx_string_tab[998] +#define __pyx_n_u_TA_BBW_Clone __pyx_string_tab[999] +#define __pyx_n_u_TA_BBW_Open __pyx_string_tab[1000] +#define __pyx_n_u_TA_BBW_OpenAndFill __pyx_string_tab[1001] +#define __pyx_n_u_TA_BBW_Peek __pyx_string_tab[1002] +#define __pyx_n_u_TA_BBW_Update __pyx_string_tab[1003] +#define __pyx_n_u_TA_BBW_Value __pyx_string_tab[1004] +#define __pyx_n_u_TA_BETA __pyx_string_tab[1005] +#define __pyx_n_u_TA_BETA_Clone __pyx_string_tab[1006] +#define __pyx_n_u_TA_BETA_Open __pyx_string_tab[1007] +#define __pyx_n_u_TA_BETA_OpenAndFill __pyx_string_tab[1008] +#define __pyx_n_u_TA_BETA_Peek __pyx_string_tab[1009] +#define __pyx_n_u_TA_BETA_Update __pyx_string_tab[1010] +#define __pyx_n_u_TA_BETA_Value __pyx_string_tab[1011] +#define __pyx_n_u_TA_BOP __pyx_string_tab[1012] +#define __pyx_n_u_TA_BOP_Clone __pyx_string_tab[1013] +#define __pyx_n_u_TA_BOP_Open __pyx_string_tab[1014] +#define __pyx_n_u_TA_BOP_OpenAndFill __pyx_string_tab[1015] +#define __pyx_n_u_TA_BOP_Peek __pyx_string_tab[1016] +#define __pyx_n_u_TA_BOP_Update __pyx_string_tab[1017] +#define __pyx_n_u_TA_BOP_Value __pyx_string_tab[1018] +#define __pyx_n_u_TA_CCI __pyx_string_tab[1019] +#define __pyx_n_u_TA_CCI_Clone __pyx_string_tab[1020] +#define __pyx_n_u_TA_CCI_Open __pyx_string_tab[1021] +#define __pyx_n_u_TA_CCI_OpenAndFill __pyx_string_tab[1022] +#define __pyx_n_u_TA_CCI_Peek __pyx_string_tab[1023] +#define __pyx_n_u_TA_CCI_Update __pyx_string_tab[1024] +#define __pyx_n_u_TA_CCI_Value __pyx_string_tab[1025] +#define __pyx_n_u_TA_CDL2CROWS __pyx_string_tab[1026] +#define __pyx_n_u_TA_CDL2CROWS_Clone __pyx_string_tab[1027] +#define __pyx_n_u_TA_CDL2CROWS_Open __pyx_string_tab[1028] +#define __pyx_n_u_TA_CDL2CROWS_OpenAndFill __pyx_string_tab[1029] +#define __pyx_n_u_TA_CDL2CROWS_Peek __pyx_string_tab[1030] +#define __pyx_n_u_TA_CDL2CROWS_Update __pyx_string_tab[1031] +#define __pyx_n_u_TA_CDL2CROWS_Value __pyx_string_tab[1032] +#define __pyx_n_u_TA_CDL3BLACKCROWS __pyx_string_tab[1033] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Clone __pyx_string_tab[1034] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Open __pyx_string_tab[1035] +#define __pyx_n_u_TA_CDL3BLACKCROWS_OpenAndFill __pyx_string_tab[1036] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Peek __pyx_string_tab[1037] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Update __pyx_string_tab[1038] +#define __pyx_n_u_TA_CDL3BLACKCROWS_Value __pyx_string_tab[1039] +#define __pyx_n_u_TA_CDL3INSIDE __pyx_string_tab[1040] +#define __pyx_n_u_TA_CDL3INSIDE_Clone __pyx_string_tab[1041] +#define __pyx_n_u_TA_CDL3INSIDE_Open __pyx_string_tab[1042] +#define __pyx_n_u_TA_CDL3INSIDE_OpenAndFill __pyx_string_tab[1043] +#define __pyx_n_u_TA_CDL3INSIDE_Peek __pyx_string_tab[1044] +#define __pyx_n_u_TA_CDL3INSIDE_Update __pyx_string_tab[1045] +#define __pyx_n_u_TA_CDL3INSIDE_Value __pyx_string_tab[1046] +#define __pyx_n_u_TA_CDL3LINESTRIKE __pyx_string_tab[1047] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Clone __pyx_string_tab[1048] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Open __pyx_string_tab[1049] +#define __pyx_n_u_TA_CDL3LINESTRIKE_OpenAndFill __pyx_string_tab[1050] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Peek __pyx_string_tab[1051] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Update __pyx_string_tab[1052] +#define __pyx_n_u_TA_CDL3LINESTRIKE_Value __pyx_string_tab[1053] +#define __pyx_n_u_TA_CDL3OUTSIDE __pyx_string_tab[1054] +#define __pyx_n_u_TA_CDL3OUTSIDE_Clone __pyx_string_tab[1055] +#define __pyx_n_u_TA_CDL3OUTSIDE_Open __pyx_string_tab[1056] +#define __pyx_n_u_TA_CDL3OUTSIDE_OpenAndFill __pyx_string_tab[1057] +#define __pyx_n_u_TA_CDL3OUTSIDE_Peek __pyx_string_tab[1058] +#define __pyx_n_u_TA_CDL3OUTSIDE_Update __pyx_string_tab[1059] +#define __pyx_n_u_TA_CDL3OUTSIDE_Value __pyx_string_tab[1060] +#define __pyx_n_u_TA_CDL3STARSINSOUTH __pyx_string_tab[1061] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Clone __pyx_string_tab[1062] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Open __pyx_string_tab[1063] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_OpenAndFill __pyx_string_tab[1064] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Peek __pyx_string_tab[1065] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Update __pyx_string_tab[1066] +#define __pyx_n_u_TA_CDL3STARSINSOUTH_Value __pyx_string_tab[1067] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS __pyx_string_tab[1068] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Clone __pyx_string_tab[1069] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Open __pyx_string_tab[1070] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_OpenAndFill __pyx_string_tab[1071] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Peek __pyx_string_tab[1072] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Update __pyx_string_tab[1073] +#define __pyx_n_u_TA_CDL3WHITESOLDIERS_Value __pyx_string_tab[1074] +#define __pyx_n_u_TA_CDLABANDONEDBABY __pyx_string_tab[1075] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Clone __pyx_string_tab[1076] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Open __pyx_string_tab[1077] +#define __pyx_n_u_TA_CDLABANDONEDBABY_OpenAndFill __pyx_string_tab[1078] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Peek __pyx_string_tab[1079] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Update __pyx_string_tab[1080] +#define __pyx_n_u_TA_CDLABANDONEDBABY_Value __pyx_string_tab[1081] +#define __pyx_n_u_TA_CDLADVANCEBLOCK __pyx_string_tab[1082] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Clone __pyx_string_tab[1083] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Open __pyx_string_tab[1084] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_OpenAndFill __pyx_string_tab[1085] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Peek __pyx_string_tab[1086] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Update __pyx_string_tab[1087] +#define __pyx_n_u_TA_CDLADVANCEBLOCK_Value __pyx_string_tab[1088] +#define __pyx_n_u_TA_CDLBELTHOLD __pyx_string_tab[1089] +#define __pyx_n_u_TA_CDLBELTHOLD_Clone __pyx_string_tab[1090] +#define __pyx_n_u_TA_CDLBELTHOLD_Open __pyx_string_tab[1091] +#define __pyx_n_u_TA_CDLBELTHOLD_OpenAndFill __pyx_string_tab[1092] +#define __pyx_n_u_TA_CDLBELTHOLD_Peek __pyx_string_tab[1093] +#define __pyx_n_u_TA_CDLBELTHOLD_Update __pyx_string_tab[1094] +#define __pyx_n_u_TA_CDLBELTHOLD_Value __pyx_string_tab[1095] +#define __pyx_n_u_TA_CDLBREAKAWAY __pyx_string_tab[1096] +#define __pyx_n_u_TA_CDLBREAKAWAY_Clone __pyx_string_tab[1097] +#define __pyx_n_u_TA_CDLBREAKAWAY_Open __pyx_string_tab[1098] +#define __pyx_n_u_TA_CDLBREAKAWAY_OpenAndFill __pyx_string_tab[1099] +#define __pyx_n_u_TA_CDLBREAKAWAY_Peek __pyx_string_tab[1100] +#define __pyx_n_u_TA_CDLBREAKAWAY_Update __pyx_string_tab[1101] +#define __pyx_n_u_TA_CDLBREAKAWAY_Value __pyx_string_tab[1102] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU __pyx_string_tab[1103] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Clone __pyx_string_tab[1104] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Open __pyx_string_tab[1105] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_OpenAndFil __pyx_string_tab[1106] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Peek __pyx_string_tab[1107] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Update __pyx_string_tab[1108] +#define __pyx_n_u_TA_CDLCLOSINGMARUBOZU_Value __pyx_string_tab[1109] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL __pyx_string_tab[1110] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Clone __pyx_string_tab[1111] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Open __pyx_string_tab[1112] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_OpenAndFi __pyx_string_tab[1113] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Peek __pyx_string_tab[1114] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Update __pyx_string_tab[1115] +#define __pyx_n_u_TA_CDLCONCEALBABYSWALL_Value __pyx_string_tab[1116] +#define __pyx_n_u_TA_CDLCOUNTERATTACK __pyx_string_tab[1117] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Clone __pyx_string_tab[1118] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Open __pyx_string_tab[1119] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_OpenAndFill __pyx_string_tab[1120] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Peek __pyx_string_tab[1121] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Update __pyx_string_tab[1122] +#define __pyx_n_u_TA_CDLCOUNTERATTACK_Value __pyx_string_tab[1123] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER __pyx_string_tab[1124] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Clone __pyx_string_tab[1125] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Open __pyx_string_tab[1126] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_OpenAndFill __pyx_string_tab[1127] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Peek __pyx_string_tab[1128] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Update __pyx_string_tab[1129] +#define __pyx_n_u_TA_CDLDARKCLOUDCOVER_Value __pyx_string_tab[1130] +#define __pyx_n_u_TA_CDLDOJI __pyx_string_tab[1131] +#define __pyx_n_u_TA_CDLDOJISTAR __pyx_string_tab[1132] +#define __pyx_n_u_TA_CDLDOJISTAR_Clone __pyx_string_tab[1133] +#define __pyx_n_u_TA_CDLDOJISTAR_Open __pyx_string_tab[1134] +#define __pyx_n_u_TA_CDLDOJISTAR_OpenAndFill __pyx_string_tab[1135] +#define __pyx_n_u_TA_CDLDOJISTAR_Peek __pyx_string_tab[1136] +#define __pyx_n_u_TA_CDLDOJISTAR_Update __pyx_string_tab[1137] +#define __pyx_n_u_TA_CDLDOJISTAR_Value __pyx_string_tab[1138] +#define __pyx_n_u_TA_CDLDOJI_Clone __pyx_string_tab[1139] +#define __pyx_n_u_TA_CDLDOJI_Open __pyx_string_tab[1140] +#define __pyx_n_u_TA_CDLDOJI_OpenAndFill __pyx_string_tab[1141] +#define __pyx_n_u_TA_CDLDOJI_Peek __pyx_string_tab[1142] +#define __pyx_n_u_TA_CDLDOJI_Update __pyx_string_tab[1143] +#define __pyx_n_u_TA_CDLDOJI_Value __pyx_string_tab[1144] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI __pyx_string_tab[1145] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Clone __pyx_string_tab[1146] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Open __pyx_string_tab[1147] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_OpenAndFill __pyx_string_tab[1148] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Peek __pyx_string_tab[1149] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Update __pyx_string_tab[1150] +#define __pyx_n_u_TA_CDLDRAGONFLYDOJI_Value __pyx_string_tab[1151] +#define __pyx_n_u_TA_CDLENGULFING __pyx_string_tab[1152] +#define __pyx_n_u_TA_CDLENGULFING_Clone __pyx_string_tab[1153] +#define __pyx_n_u_TA_CDLENGULFING_Open __pyx_string_tab[1154] +#define __pyx_n_u_TA_CDLENGULFING_OpenAndFill __pyx_string_tab[1155] +#define __pyx_n_u_TA_CDLENGULFING_Peek __pyx_string_tab[1156] +#define __pyx_n_u_TA_CDLENGULFING_Update __pyx_string_tab[1157] +#define __pyx_n_u_TA_CDLENGULFING_Value __pyx_string_tab[1158] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR __pyx_string_tab[1159] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Clone __pyx_string_tab[1160] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Open __pyx_string_tab[1161] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_OpenAndFil __pyx_string_tab[1162] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Peek __pyx_string_tab[1163] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Update __pyx_string_tab[1164] +#define __pyx_n_u_TA_CDLEVENINGDOJISTAR_Value __pyx_string_tab[1165] +#define __pyx_n_u_TA_CDLEVENINGSTAR __pyx_string_tab[1166] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Clone __pyx_string_tab[1167] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Open __pyx_string_tab[1168] +#define __pyx_n_u_TA_CDLEVENINGSTAR_OpenAndFill __pyx_string_tab[1169] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Peek __pyx_string_tab[1170] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Update __pyx_string_tab[1171] +#define __pyx_n_u_TA_CDLEVENINGSTAR_Value __pyx_string_tab[1172] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE __pyx_string_tab[1173] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Clone __pyx_string_tab[1174] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Open __pyx_string_tab[1175] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_OpenAndFi __pyx_string_tab[1176] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Peek __pyx_string_tab[1177] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Update __pyx_string_tab[1178] +#define __pyx_n_u_TA_CDLGAPSIDESIDEWHITE_Value __pyx_string_tab[1179] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI __pyx_string_tab[1180] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Clone __pyx_string_tab[1181] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Open __pyx_string_tab[1182] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_OpenAndFill __pyx_string_tab[1183] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Peek __pyx_string_tab[1184] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Update __pyx_string_tab[1185] +#define __pyx_n_u_TA_CDLGRAVESTONEDOJI_Value __pyx_string_tab[1186] +#define __pyx_n_u_TA_CDLHAMMER __pyx_string_tab[1187] +#define __pyx_n_u_TA_CDLHAMMER_Clone __pyx_string_tab[1188] +#define __pyx_n_u_TA_CDLHAMMER_Open __pyx_string_tab[1189] +#define __pyx_n_u_TA_CDLHAMMER_OpenAndFill __pyx_string_tab[1190] +#define __pyx_n_u_TA_CDLHAMMER_Peek __pyx_string_tab[1191] +#define __pyx_n_u_TA_CDLHAMMER_Update __pyx_string_tab[1192] +#define __pyx_n_u_TA_CDLHAMMER_Value __pyx_string_tab[1193] +#define __pyx_n_u_TA_CDLHANGINGMAN __pyx_string_tab[1194] +#define __pyx_n_u_TA_CDLHANGINGMAN_Clone __pyx_string_tab[1195] +#define __pyx_n_u_TA_CDLHANGINGMAN_Open __pyx_string_tab[1196] +#define __pyx_n_u_TA_CDLHANGINGMAN_OpenAndFill __pyx_string_tab[1197] +#define __pyx_n_u_TA_CDLHANGINGMAN_Peek __pyx_string_tab[1198] +#define __pyx_n_u_TA_CDLHANGINGMAN_Update __pyx_string_tab[1199] +#define __pyx_n_u_TA_CDLHANGINGMAN_Value __pyx_string_tab[1200] +#define __pyx_n_u_TA_CDLHARAMI __pyx_string_tab[1201] +#define __pyx_n_u_TA_CDLHARAMICROSS __pyx_string_tab[1202] +#define __pyx_n_u_TA_CDLHARAMICROSS_Clone __pyx_string_tab[1203] +#define __pyx_n_u_TA_CDLHARAMICROSS_Open __pyx_string_tab[1204] +#define __pyx_n_u_TA_CDLHARAMICROSS_OpenAndFill __pyx_string_tab[1205] +#define __pyx_n_u_TA_CDLHARAMICROSS_Peek __pyx_string_tab[1206] +#define __pyx_n_u_TA_CDLHARAMICROSS_Update __pyx_string_tab[1207] +#define __pyx_n_u_TA_CDLHARAMICROSS_Value __pyx_string_tab[1208] +#define __pyx_n_u_TA_CDLHARAMI_Clone __pyx_string_tab[1209] +#define __pyx_n_u_TA_CDLHARAMI_Open __pyx_string_tab[1210] +#define __pyx_n_u_TA_CDLHARAMI_OpenAndFill __pyx_string_tab[1211] +#define __pyx_n_u_TA_CDLHARAMI_Peek __pyx_string_tab[1212] +#define __pyx_n_u_TA_CDLHARAMI_Update __pyx_string_tab[1213] +#define __pyx_n_u_TA_CDLHARAMI_Value __pyx_string_tab[1214] +#define __pyx_n_u_TA_CDLHIGHWAVE __pyx_string_tab[1215] +#define __pyx_n_u_TA_CDLHIGHWAVE_Clone __pyx_string_tab[1216] +#define __pyx_n_u_TA_CDLHIGHWAVE_Open __pyx_string_tab[1217] +#define __pyx_n_u_TA_CDLHIGHWAVE_OpenAndFill __pyx_string_tab[1218] +#define __pyx_n_u_TA_CDLHIGHWAVE_Peek __pyx_string_tab[1219] +#define __pyx_n_u_TA_CDLHIGHWAVE_Update __pyx_string_tab[1220] +#define __pyx_n_u_TA_CDLHIGHWAVE_Value __pyx_string_tab[1221] +#define __pyx_n_u_TA_CDLHIKKAKE __pyx_string_tab[1222] +#define __pyx_n_u_TA_CDLHIKKAKEMOD __pyx_string_tab[1223] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Clone __pyx_string_tab[1224] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Open __pyx_string_tab[1225] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_OpenAndFill __pyx_string_tab[1226] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Peek __pyx_string_tab[1227] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Update __pyx_string_tab[1228] +#define __pyx_n_u_TA_CDLHIKKAKEMOD_Value __pyx_string_tab[1229] +#define __pyx_n_u_TA_CDLHIKKAKE_Clone __pyx_string_tab[1230] +#define __pyx_n_u_TA_CDLHIKKAKE_Open __pyx_string_tab[1231] +#define __pyx_n_u_TA_CDLHIKKAKE_OpenAndFill __pyx_string_tab[1232] +#define __pyx_n_u_TA_CDLHIKKAKE_Peek __pyx_string_tab[1233] +#define __pyx_n_u_TA_CDLHIKKAKE_Update __pyx_string_tab[1234] +#define __pyx_n_u_TA_CDLHIKKAKE_Value __pyx_string_tab[1235] +#define __pyx_n_u_TA_CDLHOMINGPIGEON __pyx_string_tab[1236] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Clone __pyx_string_tab[1237] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Open __pyx_string_tab[1238] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_OpenAndFill __pyx_string_tab[1239] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Peek __pyx_string_tab[1240] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Update __pyx_string_tab[1241] +#define __pyx_n_u_TA_CDLHOMINGPIGEON_Value __pyx_string_tab[1242] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS __pyx_string_tab[1243] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Clone __pyx_string_tab[1244] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Open __pyx_string_tab[1245] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_OpenAndFil __pyx_string_tab[1246] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Peek __pyx_string_tab[1247] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Update __pyx_string_tab[1248] +#define __pyx_n_u_TA_CDLIDENTICAL3CROWS_Value __pyx_string_tab[1249] +#define __pyx_n_u_TA_CDLINNECK __pyx_string_tab[1250] +#define __pyx_n_u_TA_CDLINNECK_Clone __pyx_string_tab[1251] +#define __pyx_n_u_TA_CDLINNECK_Open __pyx_string_tab[1252] +#define __pyx_n_u_TA_CDLINNECK_OpenAndFill __pyx_string_tab[1253] +#define __pyx_n_u_TA_CDLINNECK_Peek __pyx_string_tab[1254] +#define __pyx_n_u_TA_CDLINNECK_Update __pyx_string_tab[1255] +#define __pyx_n_u_TA_CDLINNECK_Value __pyx_string_tab[1256] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER __pyx_string_tab[1257] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Clone __pyx_string_tab[1258] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Open __pyx_string_tab[1259] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_OpenAndFill __pyx_string_tab[1260] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Peek __pyx_string_tab[1261] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Update __pyx_string_tab[1262] +#define __pyx_n_u_TA_CDLINVERTEDHAMMER_Value __pyx_string_tab[1263] +#define __pyx_n_u_TA_CDLKICKING __pyx_string_tab[1264] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH __pyx_string_tab[1265] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Clone __pyx_string_tab[1266] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Open __pyx_string_tab[1267] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_OpenAndFil __pyx_string_tab[1268] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Peek __pyx_string_tab[1269] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Update __pyx_string_tab[1270] +#define __pyx_n_u_TA_CDLKICKINGBYLENGTH_Value __pyx_string_tab[1271] +#define __pyx_n_u_TA_CDLKICKING_Clone __pyx_string_tab[1272] +#define __pyx_n_u_TA_CDLKICKING_Open __pyx_string_tab[1273] +#define __pyx_n_u_TA_CDLKICKING_OpenAndFill __pyx_string_tab[1274] +#define __pyx_n_u_TA_CDLKICKING_Peek __pyx_string_tab[1275] +#define __pyx_n_u_TA_CDLKICKING_Update __pyx_string_tab[1276] +#define __pyx_n_u_TA_CDLKICKING_Value __pyx_string_tab[1277] +#define __pyx_n_u_TA_CDLLADDERBOTTOM __pyx_string_tab[1278] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Clone __pyx_string_tab[1279] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Open __pyx_string_tab[1280] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_OpenAndFill __pyx_string_tab[1281] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Peek __pyx_string_tab[1282] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Update __pyx_string_tab[1283] +#define __pyx_n_u_TA_CDLLADDERBOTTOM_Value __pyx_string_tab[1284] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI __pyx_string_tab[1285] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Clone __pyx_string_tab[1286] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Open __pyx_string_tab[1287] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_OpenAndFill __pyx_string_tab[1288] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Peek __pyx_string_tab[1289] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Update __pyx_string_tab[1290] +#define __pyx_n_u_TA_CDLLONGLEGGEDDOJI_Value __pyx_string_tab[1291] +#define __pyx_n_u_TA_CDLLONGLINE __pyx_string_tab[1292] +#define __pyx_n_u_TA_CDLLONGLINE_Clone __pyx_string_tab[1293] +#define __pyx_n_u_TA_CDLLONGLINE_Open __pyx_string_tab[1294] +#define __pyx_n_u_TA_CDLLONGLINE_OpenAndFill __pyx_string_tab[1295] +#define __pyx_n_u_TA_CDLLONGLINE_Peek __pyx_string_tab[1296] +#define __pyx_n_u_TA_CDLLONGLINE_Update __pyx_string_tab[1297] +#define __pyx_n_u_TA_CDLLONGLINE_Value __pyx_string_tab[1298] +#define __pyx_n_u_TA_CDLMARUBOZU __pyx_string_tab[1299] +#define __pyx_n_u_TA_CDLMARUBOZU_Clone __pyx_string_tab[1300] +#define __pyx_n_u_TA_CDLMARUBOZU_Open __pyx_string_tab[1301] +#define __pyx_n_u_TA_CDLMARUBOZU_OpenAndFill __pyx_string_tab[1302] +#define __pyx_n_u_TA_CDLMARUBOZU_Peek __pyx_string_tab[1303] +#define __pyx_n_u_TA_CDLMARUBOZU_Update __pyx_string_tab[1304] +#define __pyx_n_u_TA_CDLMARUBOZU_Value __pyx_string_tab[1305] +#define __pyx_n_u_TA_CDLMATCHINGLOW __pyx_string_tab[1306] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Clone __pyx_string_tab[1307] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Open __pyx_string_tab[1308] +#define __pyx_n_u_TA_CDLMATCHINGLOW_OpenAndFill __pyx_string_tab[1309] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Peek __pyx_string_tab[1310] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Update __pyx_string_tab[1311] +#define __pyx_n_u_TA_CDLMATCHINGLOW_Value __pyx_string_tab[1312] +#define __pyx_n_u_TA_CDLMATHOLD __pyx_string_tab[1313] +#define __pyx_n_u_TA_CDLMATHOLD_Clone __pyx_string_tab[1314] +#define __pyx_n_u_TA_CDLMATHOLD_Open __pyx_string_tab[1315] +#define __pyx_n_u_TA_CDLMATHOLD_OpenAndFill __pyx_string_tab[1316] +#define __pyx_n_u_TA_CDLMATHOLD_Peek __pyx_string_tab[1317] +#define __pyx_n_u_TA_CDLMATHOLD_Update __pyx_string_tab[1318] +#define __pyx_n_u_TA_CDLMATHOLD_Value __pyx_string_tab[1319] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR __pyx_string_tab[1320] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Clone __pyx_string_tab[1321] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Open __pyx_string_tab[1322] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_OpenAndFil __pyx_string_tab[1323] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Peek __pyx_string_tab[1324] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Update __pyx_string_tab[1325] +#define __pyx_n_u_TA_CDLMORNINGDOJISTAR_Value __pyx_string_tab[1326] +#define __pyx_n_u_TA_CDLMORNINGSTAR __pyx_string_tab[1327] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Clone __pyx_string_tab[1328] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Open __pyx_string_tab[1329] +#define __pyx_n_u_TA_CDLMORNINGSTAR_OpenAndFill __pyx_string_tab[1330] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Peek __pyx_string_tab[1331] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Update __pyx_string_tab[1332] +#define __pyx_n_u_TA_CDLMORNINGSTAR_Value __pyx_string_tab[1333] +#define __pyx_n_u_TA_CDLONNECK __pyx_string_tab[1334] +#define __pyx_n_u_TA_CDLONNECK_Clone __pyx_string_tab[1335] +#define __pyx_n_u_TA_CDLONNECK_Open __pyx_string_tab[1336] +#define __pyx_n_u_TA_CDLONNECK_OpenAndFill __pyx_string_tab[1337] +#define __pyx_n_u_TA_CDLONNECK_Peek __pyx_string_tab[1338] +#define __pyx_n_u_TA_CDLONNECK_Update __pyx_string_tab[1339] +#define __pyx_n_u_TA_CDLONNECK_Value __pyx_string_tab[1340] +#define __pyx_n_u_TA_CDLPIERCING __pyx_string_tab[1341] +#define __pyx_n_u_TA_CDLPIERCING_Clone __pyx_string_tab[1342] +#define __pyx_n_u_TA_CDLPIERCING_Open __pyx_string_tab[1343] +#define __pyx_n_u_TA_CDLPIERCING_OpenAndFill __pyx_string_tab[1344] +#define __pyx_n_u_TA_CDLPIERCING_Peek __pyx_string_tab[1345] +#define __pyx_n_u_TA_CDLPIERCING_Update __pyx_string_tab[1346] +#define __pyx_n_u_TA_CDLPIERCING_Value __pyx_string_tab[1347] +#define __pyx_n_u_TA_CDLRICKSHAWMAN __pyx_string_tab[1348] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Clone __pyx_string_tab[1349] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Open __pyx_string_tab[1350] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_OpenAndFill __pyx_string_tab[1351] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Peek __pyx_string_tab[1352] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Update __pyx_string_tab[1353] +#define __pyx_n_u_TA_CDLRICKSHAWMAN_Value __pyx_string_tab[1354] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS __pyx_string_tab[1355] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Clone __pyx_string_tab[1356] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Open __pyx_string_tab[1357] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_OpenAndFi __pyx_string_tab[1358] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Peek __pyx_string_tab[1359] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Update __pyx_string_tab[1360] +#define __pyx_n_u_TA_CDLRISEFALL3METHODS_Value __pyx_string_tab[1361] +#define __pyx_n_u_TA_CDLSEPARATINGLINES __pyx_string_tab[1362] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Clone __pyx_string_tab[1363] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Open __pyx_string_tab[1364] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_OpenAndFil __pyx_string_tab[1365] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Peek __pyx_string_tab[1366] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Update __pyx_string_tab[1367] +#define __pyx_n_u_TA_CDLSEPARATINGLINES_Value __pyx_string_tab[1368] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR __pyx_string_tab[1369] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Clone __pyx_string_tab[1370] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Open __pyx_string_tab[1371] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_OpenAndFill __pyx_string_tab[1372] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Peek __pyx_string_tab[1373] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Update __pyx_string_tab[1374] +#define __pyx_n_u_TA_CDLSHOOTINGSTAR_Value __pyx_string_tab[1375] +#define __pyx_n_u_TA_CDLSHORTLINE __pyx_string_tab[1376] +#define __pyx_n_u_TA_CDLSHORTLINE_Clone __pyx_string_tab[1377] +#define __pyx_n_u_TA_CDLSHORTLINE_Open __pyx_string_tab[1378] +#define __pyx_n_u_TA_CDLSHORTLINE_OpenAndFill __pyx_string_tab[1379] +#define __pyx_n_u_TA_CDLSHORTLINE_Peek __pyx_string_tab[1380] +#define __pyx_n_u_TA_CDLSHORTLINE_Update __pyx_string_tab[1381] +#define __pyx_n_u_TA_CDLSHORTLINE_Value __pyx_string_tab[1382] +#define __pyx_n_u_TA_CDLSPINNINGTOP __pyx_string_tab[1383] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Clone __pyx_string_tab[1384] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Open __pyx_string_tab[1385] +#define __pyx_n_u_TA_CDLSPINNINGTOP_OpenAndFill __pyx_string_tab[1386] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Peek __pyx_string_tab[1387] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Update __pyx_string_tab[1388] +#define __pyx_n_u_TA_CDLSPINNINGTOP_Value __pyx_string_tab[1389] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN __pyx_string_tab[1390] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Clone __pyx_string_tab[1391] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Open __pyx_string_tab[1392] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_OpenAndFill __pyx_string_tab[1393] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Peek __pyx_string_tab[1394] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Update __pyx_string_tab[1395] +#define __pyx_n_u_TA_CDLSTALLEDPATTERN_Value __pyx_string_tab[1396] +#define __pyx_n_u_TA_CDLSTICKSANDWICH __pyx_string_tab[1397] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Clone __pyx_string_tab[1398] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Open __pyx_string_tab[1399] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_OpenAndFill __pyx_string_tab[1400] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Peek __pyx_string_tab[1401] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Update __pyx_string_tab[1402] +#define __pyx_n_u_TA_CDLSTICKSANDWICH_Value __pyx_string_tab[1403] +#define __pyx_n_u_TA_CDLTAKURI __pyx_string_tab[1404] +#define __pyx_n_u_TA_CDLTAKURI_Clone __pyx_string_tab[1405] +#define __pyx_n_u_TA_CDLTAKURI_Open __pyx_string_tab[1406] +#define __pyx_n_u_TA_CDLTAKURI_OpenAndFill __pyx_string_tab[1407] +#define __pyx_n_u_TA_CDLTAKURI_Peek __pyx_string_tab[1408] +#define __pyx_n_u_TA_CDLTAKURI_Update __pyx_string_tab[1409] +#define __pyx_n_u_TA_CDLTAKURI_Value __pyx_string_tab[1410] +#define __pyx_n_u_TA_CDLTASUKIGAP __pyx_string_tab[1411] +#define __pyx_n_u_TA_CDLTASUKIGAP_Clone __pyx_string_tab[1412] +#define __pyx_n_u_TA_CDLTASUKIGAP_Open __pyx_string_tab[1413] +#define __pyx_n_u_TA_CDLTASUKIGAP_OpenAndFill __pyx_string_tab[1414] +#define __pyx_n_u_TA_CDLTASUKIGAP_Peek __pyx_string_tab[1415] +#define __pyx_n_u_TA_CDLTASUKIGAP_Update __pyx_string_tab[1416] +#define __pyx_n_u_TA_CDLTASUKIGAP_Value __pyx_string_tab[1417] +#define __pyx_n_u_TA_CDLTHRUSTING __pyx_string_tab[1418] +#define __pyx_n_u_TA_CDLTHRUSTING_Clone __pyx_string_tab[1419] +#define __pyx_n_u_TA_CDLTHRUSTING_Open __pyx_string_tab[1420] +#define __pyx_n_u_TA_CDLTHRUSTING_OpenAndFill __pyx_string_tab[1421] +#define __pyx_n_u_TA_CDLTHRUSTING_Peek __pyx_string_tab[1422] +#define __pyx_n_u_TA_CDLTHRUSTING_Update __pyx_string_tab[1423] +#define __pyx_n_u_TA_CDLTHRUSTING_Value __pyx_string_tab[1424] +#define __pyx_n_u_TA_CDLTRISTAR __pyx_string_tab[1425] +#define __pyx_n_u_TA_CDLTRISTAR_Clone __pyx_string_tab[1426] +#define __pyx_n_u_TA_CDLTRISTAR_Open __pyx_string_tab[1427] +#define __pyx_n_u_TA_CDLTRISTAR_OpenAndFill __pyx_string_tab[1428] +#define __pyx_n_u_TA_CDLTRISTAR_Peek __pyx_string_tab[1429] +#define __pyx_n_u_TA_CDLTRISTAR_Update __pyx_string_tab[1430] +#define __pyx_n_u_TA_CDLTRISTAR_Value __pyx_string_tab[1431] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER __pyx_string_tab[1432] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Clone __pyx_string_tab[1433] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Open __pyx_string_tab[1434] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_OpenAndFill __pyx_string_tab[1435] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Peek __pyx_string_tab[1436] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Update __pyx_string_tab[1437] +#define __pyx_n_u_TA_CDLUNIQUE3RIVER_Value __pyx_string_tab[1438] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS __pyx_string_tab[1439] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Clone __pyx_string_tab[1440] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Open __pyx_string_tab[1441] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_OpenAndFil __pyx_string_tab[1442] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Peek __pyx_string_tab[1443] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Update __pyx_string_tab[1444] +#define __pyx_n_u_TA_CDLUPSIDEGAP2CROWS_Value __pyx_string_tab[1445] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS __pyx_string_tab[1446] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Clone __pyx_string_tab[1447] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Open __pyx_string_tab[1448] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_OpenAndFi __pyx_string_tab[1449] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Peek __pyx_string_tab[1450] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Update __pyx_string_tab[1451] +#define __pyx_n_u_TA_CDLXSIDEGAP3METHODS_Value __pyx_string_tab[1452] +#define __pyx_n_u_TA_CEIL __pyx_string_tab[1453] +#define __pyx_n_u_TA_CEIL_Clone __pyx_string_tab[1454] +#define __pyx_n_u_TA_CEIL_Open __pyx_string_tab[1455] +#define __pyx_n_u_TA_CEIL_OpenAndFill __pyx_string_tab[1456] +#define __pyx_n_u_TA_CEIL_Peek __pyx_string_tab[1457] +#define __pyx_n_u_TA_CEIL_Update __pyx_string_tab[1458] +#define __pyx_n_u_TA_CEIL_Value __pyx_string_tab[1459] +#define __pyx_n_u_TA_CG __pyx_string_tab[1460] +#define __pyx_n_u_TA_CG_Clone __pyx_string_tab[1461] +#define __pyx_n_u_TA_CG_Open __pyx_string_tab[1462] +#define __pyx_n_u_TA_CG_OpenAndFill __pyx_string_tab[1463] +#define __pyx_n_u_TA_CG_Peek __pyx_string_tab[1464] +#define __pyx_n_u_TA_CG_Update __pyx_string_tab[1465] +#define __pyx_n_u_TA_CG_Value __pyx_string_tab[1466] +#define __pyx_n_u_TA_CHOP __pyx_string_tab[1467] +#define __pyx_n_u_TA_CHOPTR __pyx_string_tab[1468] +#define __pyx_n_u_TA_CHOPTR_Clone __pyx_string_tab[1469] +#define __pyx_n_u_TA_CHOPTR_Open __pyx_string_tab[1470] +#define __pyx_n_u_TA_CHOPTR_OpenAndFill __pyx_string_tab[1471] +#define __pyx_n_u_TA_CHOPTR_Peek __pyx_string_tab[1472] +#define __pyx_n_u_TA_CHOPTR_Update __pyx_string_tab[1473] +#define __pyx_n_u_TA_CHOPTR_Value __pyx_string_tab[1474] +#define __pyx_n_u_TA_CHOP_Clone __pyx_string_tab[1475] +#define __pyx_n_u_TA_CHOP_Open __pyx_string_tab[1476] +#define __pyx_n_u_TA_CHOP_OpenAndFill __pyx_string_tab[1477] +#define __pyx_n_u_TA_CHOP_Peek __pyx_string_tab[1478] +#define __pyx_n_u_TA_CHOP_Update __pyx_string_tab[1479] +#define __pyx_n_u_TA_CHOP_Value __pyx_string_tab[1480] +#define __pyx_n_u_TA_CKSP __pyx_string_tab[1481] +#define __pyx_n_u_TA_CKSP_Clone __pyx_string_tab[1482] +#define __pyx_n_u_TA_CKSP_Open __pyx_string_tab[1483] +#define __pyx_n_u_TA_CKSP_OpenAndFill __pyx_string_tab[1484] +#define __pyx_n_u_TA_CKSP_Peek __pyx_string_tab[1485] +#define __pyx_n_u_TA_CKSP_Update __pyx_string_tab[1486] +#define __pyx_n_u_TA_CKSP_Value __pyx_string_tab[1487] +#define __pyx_n_u_TA_CMF __pyx_string_tab[1488] +#define __pyx_n_u_TA_CMF_Clone __pyx_string_tab[1489] +#define __pyx_n_u_TA_CMF_Open __pyx_string_tab[1490] +#define __pyx_n_u_TA_CMF_OpenAndFill __pyx_string_tab[1491] +#define __pyx_n_u_TA_CMF_Peek __pyx_string_tab[1492] +#define __pyx_n_u_TA_CMF_Update __pyx_string_tab[1493] +#define __pyx_n_u_TA_CMF_Value __pyx_string_tab[1494] +#define __pyx_n_u_TA_CMO __pyx_string_tab[1495] +#define __pyx_n_u_TA_CMOU __pyx_string_tab[1496] +#define __pyx_n_u_TA_CMOU_Clone __pyx_string_tab[1497] +#define __pyx_n_u_TA_CMOU_Open __pyx_string_tab[1498] +#define __pyx_n_u_TA_CMOU_OpenAndFill __pyx_string_tab[1499] +#define __pyx_n_u_TA_CMOU_Peek __pyx_string_tab[1500] +#define __pyx_n_u_TA_CMOU_Update __pyx_string_tab[1501] +#define __pyx_n_u_TA_CMOU_Value __pyx_string_tab[1502] +#define __pyx_n_u_TA_CMO_Clone __pyx_string_tab[1503] +#define __pyx_n_u_TA_CMO_Open __pyx_string_tab[1504] +#define __pyx_n_u_TA_CMO_OpenAndFill __pyx_string_tab[1505] +#define __pyx_n_u_TA_CMO_Peek __pyx_string_tab[1506] +#define __pyx_n_u_TA_CMO_Update __pyx_string_tab[1507] +#define __pyx_n_u_TA_CMO_Value __pyx_string_tab[1508] +#define __pyx_n_u_TA_COPPOCK __pyx_string_tab[1509] +#define __pyx_n_u_TA_COPPOCK_Clone __pyx_string_tab[1510] +#define __pyx_n_u_TA_COPPOCK_Open __pyx_string_tab[1511] +#define __pyx_n_u_TA_COPPOCK_OpenAndFill __pyx_string_tab[1512] +#define __pyx_n_u_TA_COPPOCK_Peek __pyx_string_tab[1513] +#define __pyx_n_u_TA_COPPOCK_Update __pyx_string_tab[1514] +#define __pyx_n_u_TA_COPPOCK_Value __pyx_string_tab[1515] +#define __pyx_n_u_TA_CORREL __pyx_string_tab[1516] +#define __pyx_n_u_TA_CORREL_Clone __pyx_string_tab[1517] +#define __pyx_n_u_TA_CORREL_Open __pyx_string_tab[1518] +#define __pyx_n_u_TA_CORREL_OpenAndFill __pyx_string_tab[1519] +#define __pyx_n_u_TA_CORREL_Peek __pyx_string_tab[1520] +#define __pyx_n_u_TA_CORREL_Update __pyx_string_tab[1521] +#define __pyx_n_u_TA_CORREL_Value __pyx_string_tab[1522] +#define __pyx_n_u_TA_COS __pyx_string_tab[1523] +#define __pyx_n_u_TA_COSH __pyx_string_tab[1524] +#define __pyx_n_u_TA_COSH_Clone __pyx_string_tab[1525] +#define __pyx_n_u_TA_COSH_Open __pyx_string_tab[1526] +#define __pyx_n_u_TA_COSH_OpenAndFill __pyx_string_tab[1527] +#define __pyx_n_u_TA_COSH_Peek __pyx_string_tab[1528] +#define __pyx_n_u_TA_COSH_Update __pyx_string_tab[1529] +#define __pyx_n_u_TA_COSH_Value __pyx_string_tab[1530] +#define __pyx_n_u_TA_COS_Clone __pyx_string_tab[1531] +#define __pyx_n_u_TA_COS_Open __pyx_string_tab[1532] +#define __pyx_n_u_TA_COS_OpenAndFill __pyx_string_tab[1533] +#define __pyx_n_u_TA_COS_Peek __pyx_string_tab[1534] +#define __pyx_n_u_TA_COS_Update __pyx_string_tab[1535] +#define __pyx_n_u_TA_COS_Value __pyx_string_tab[1536] +#define __pyx_n_u_TA_CRSI __pyx_string_tab[1537] +#define __pyx_n_u_TA_CRSI_Clone __pyx_string_tab[1538] +#define __pyx_n_u_TA_CRSI_Open __pyx_string_tab[1539] +#define __pyx_n_u_TA_CRSI_OpenAndFill __pyx_string_tab[1540] +#define __pyx_n_u_TA_CRSI_Peek __pyx_string_tab[1541] +#define __pyx_n_u_TA_CRSI_Update __pyx_string_tab[1542] +#define __pyx_n_u_TA_CRSI_Value __pyx_string_tab[1543] +#define __pyx_n_u_TA_CTI __pyx_string_tab[1544] +#define __pyx_n_u_TA_CTI_Clone __pyx_string_tab[1545] +#define __pyx_n_u_TA_CTI_Open __pyx_string_tab[1546] +#define __pyx_n_u_TA_CTI_OpenAndFill __pyx_string_tab[1547] +#define __pyx_n_u_TA_CTI_Peek __pyx_string_tab[1548] +#define __pyx_n_u_TA_CTI_Update __pyx_string_tab[1549] +#define __pyx_n_u_TA_CTI_Value __pyx_string_tab[1550] +#define __pyx_n_u_TA_CUMSUM __pyx_string_tab[1551] +#define __pyx_n_u_TA_CUMSUM_Clone __pyx_string_tab[1552] +#define __pyx_n_u_TA_CUMSUM_Open __pyx_string_tab[1553] +#define __pyx_n_u_TA_CUMSUM_OpenAndFill __pyx_string_tab[1554] +#define __pyx_n_u_TA_CUMSUM_Peek __pyx_string_tab[1555] +#define __pyx_n_u_TA_CUMSUM_Update __pyx_string_tab[1556] +#define __pyx_n_u_TA_CUMSUM_Value __pyx_string_tab[1557] +#define __pyx_n_u_TA_CVI __pyx_string_tab[1558] +#define __pyx_n_u_TA_CVI_Clone __pyx_string_tab[1559] +#define __pyx_n_u_TA_CVI_Open __pyx_string_tab[1560] +#define __pyx_n_u_TA_CVI_OpenAndFill __pyx_string_tab[1561] +#define __pyx_n_u_TA_CVI_Peek __pyx_string_tab[1562] +#define __pyx_n_u_TA_CVI_Update __pyx_string_tab[1563] +#define __pyx_n_u_TA_CVI_Value __pyx_string_tab[1564] +#define __pyx_n_u_TA_DEMA __pyx_string_tab[1565] +#define __pyx_n_u_TA_DEMA_Clone __pyx_string_tab[1566] +#define __pyx_n_u_TA_DEMA_Open __pyx_string_tab[1567] +#define __pyx_n_u_TA_DEMA_OpenAndFill __pyx_string_tab[1568] +#define __pyx_n_u_TA_DEMA_Peek __pyx_string_tab[1569] +#define __pyx_n_u_TA_DEMA_Update __pyx_string_tab[1570] +#define __pyx_n_u_TA_DEMA_Value __pyx_string_tab[1571] +#define __pyx_n_u_TA_DIV __pyx_string_tab[1572] +#define __pyx_n_u_TA_DIV_Clone __pyx_string_tab[1573] +#define __pyx_n_u_TA_DIV_Open __pyx_string_tab[1574] +#define __pyx_n_u_TA_DIV_OpenAndFill __pyx_string_tab[1575] +#define __pyx_n_u_TA_DIV_Peek __pyx_string_tab[1576] +#define __pyx_n_u_TA_DIV_Update __pyx_string_tab[1577] +#define __pyx_n_u_TA_DIV_Value __pyx_string_tab[1578] +#define __pyx_n_u_TA_DONCHIAN __pyx_string_tab[1579] +#define __pyx_n_u_TA_DONCHIAN_Clone __pyx_string_tab[1580] +#define __pyx_n_u_TA_DONCHIAN_Open __pyx_string_tab[1581] +#define __pyx_n_u_TA_DONCHIAN_OpenAndFill __pyx_string_tab[1582] +#define __pyx_n_u_TA_DONCHIAN_Peek __pyx_string_tab[1583] +#define __pyx_n_u_TA_DONCHIAN_Update __pyx_string_tab[1584] +#define __pyx_n_u_TA_DONCHIAN_Value __pyx_string_tab[1585] +#define __pyx_n_u_TA_DOSC __pyx_string_tab[1586] +#define __pyx_n_u_TA_DOSC_Clone __pyx_string_tab[1587] +#define __pyx_n_u_TA_DOSC_Open __pyx_string_tab[1588] +#define __pyx_n_u_TA_DOSC_OpenAndFill __pyx_string_tab[1589] +#define __pyx_n_u_TA_DOSC_Peek __pyx_string_tab[1590] +#define __pyx_n_u_TA_DOSC_Update __pyx_string_tab[1591] +#define __pyx_n_u_TA_DOSC_Value __pyx_string_tab[1592] +#define __pyx_n_u_TA_DPO __pyx_string_tab[1593] +#define __pyx_n_u_TA_DPO_Clone __pyx_string_tab[1594] +#define __pyx_n_u_TA_DPO_Open __pyx_string_tab[1595] +#define __pyx_n_u_TA_DPO_OpenAndFill __pyx_string_tab[1596] +#define __pyx_n_u_TA_DPO_Peek __pyx_string_tab[1597] +#define __pyx_n_u_TA_DPO_Update __pyx_string_tab[1598] +#define __pyx_n_u_TA_DPO_Value __pyx_string_tab[1599] +#define __pyx_n_u_TA_DX __pyx_string_tab[1600] +#define __pyx_n_u_TA_DX_Clone __pyx_string_tab[1601] +#define __pyx_n_u_TA_DX_Open __pyx_string_tab[1602] +#define __pyx_n_u_TA_DX_OpenAndFill __pyx_string_tab[1603] +#define __pyx_n_u_TA_DX_Peek __pyx_string_tab[1604] +#define __pyx_n_u_TA_DX_Update __pyx_string_tab[1605] +#define __pyx_n_u_TA_DX_Value __pyx_string_tab[1606] +#define __pyx_n_u_TA_EFI __pyx_string_tab[1607] +#define __pyx_n_u_TA_EFI_Clone __pyx_string_tab[1608] +#define __pyx_n_u_TA_EFI_Open __pyx_string_tab[1609] +#define __pyx_n_u_TA_EFI_OpenAndFill __pyx_string_tab[1610] +#define __pyx_n_u_TA_EFI_Peek __pyx_string_tab[1611] +#define __pyx_n_u_TA_EFI_Update __pyx_string_tab[1612] +#define __pyx_n_u_TA_EFI_Value __pyx_string_tab[1613] +#define __pyx_n_u_TA_EMA __pyx_string_tab[1614] +#define __pyx_n_u_TA_EMA_Clone __pyx_string_tab[1615] +#define __pyx_n_u_TA_EMA_Open __pyx_string_tab[1616] +#define __pyx_n_u_TA_EMA_OpenAndFill __pyx_string_tab[1617] +#define __pyx_n_u_TA_EMA_Peek __pyx_string_tab[1618] +#define __pyx_n_u_TA_EMA_Update __pyx_string_tab[1619] +#define __pyx_n_u_TA_EMA_Value __pyx_string_tab[1620] +#define __pyx_n_u_TA_EMV __pyx_string_tab[1621] +#define __pyx_n_u_TA_EMV_Clone __pyx_string_tab[1622] +#define __pyx_n_u_TA_EMV_Open __pyx_string_tab[1623] +#define __pyx_n_u_TA_EMV_OpenAndFill __pyx_string_tab[1624] +#define __pyx_n_u_TA_EMV_Peek __pyx_string_tab[1625] +#define __pyx_n_u_TA_EMV_Update __pyx_string_tab[1626] +#define __pyx_n_u_TA_EMV_Value __pyx_string_tab[1627] +#define __pyx_n_u_TA_ER __pyx_string_tab[1628] +#define __pyx_n_u_TA_ERI __pyx_string_tab[1629] +#define __pyx_n_u_TA_ERI_Clone __pyx_string_tab[1630] +#define __pyx_n_u_TA_ERI_Open __pyx_string_tab[1631] +#define __pyx_n_u_TA_ERI_OpenAndFill __pyx_string_tab[1632] +#define __pyx_n_u_TA_ERI_Peek __pyx_string_tab[1633] +#define __pyx_n_u_TA_ERI_Update __pyx_string_tab[1634] +#define __pyx_n_u_TA_ERI_Value __pyx_string_tab[1635] +#define __pyx_n_u_TA_ER_Clone __pyx_string_tab[1636] +#define __pyx_n_u_TA_ER_Open __pyx_string_tab[1637] +#define __pyx_n_u_TA_ER_OpenAndFill __pyx_string_tab[1638] +#define __pyx_n_u_TA_ER_Peek __pyx_string_tab[1639] +#define __pyx_n_u_TA_ER_Update __pyx_string_tab[1640] +#define __pyx_n_u_TA_ER_Value __pyx_string_tab[1641] +#define __pyx_n_u_TA_EXP __pyx_string_tab[1642] +#define __pyx_n_u_TA_EXP_Clone __pyx_string_tab[1643] +#define __pyx_n_u_TA_EXP_Open __pyx_string_tab[1644] +#define __pyx_n_u_TA_EXP_OpenAndFill __pyx_string_tab[1645] +#define __pyx_n_u_TA_EXP_Peek __pyx_string_tab[1646] +#define __pyx_n_u_TA_EXP_Update __pyx_string_tab[1647] +#define __pyx_n_u_TA_EXP_Value __pyx_string_tab[1648] +#define __pyx_n_u_TA_FISHER __pyx_string_tab[1649] +#define __pyx_n_u_TA_FISHER_Clone __pyx_string_tab[1650] +#define __pyx_n_u_TA_FISHER_Open __pyx_string_tab[1651] +#define __pyx_n_u_TA_FISHER_OpenAndFill __pyx_string_tab[1652] +#define __pyx_n_u_TA_FISHER_Peek __pyx_string_tab[1653] +#define __pyx_n_u_TA_FISHER_Update __pyx_string_tab[1654] +#define __pyx_n_u_TA_FISHER_Value __pyx_string_tab[1655] +#define __pyx_n_u_TA_FLOOR __pyx_string_tab[1656] +#define __pyx_n_u_TA_FLOOR_Clone __pyx_string_tab[1657] +#define __pyx_n_u_TA_FLOOR_Open __pyx_string_tab[1658] +#define __pyx_n_u_TA_FLOOR_OpenAndFill __pyx_string_tab[1659] +#define __pyx_n_u_TA_FLOOR_Peek __pyx_string_tab[1660] +#define __pyx_n_u_TA_FLOOR_Update __pyx_string_tab[1661] +#define __pyx_n_u_TA_FLOOR_Value __pyx_string_tab[1662] +#define __pyx_n_u_TA_FOSC __pyx_string_tab[1663] +#define __pyx_n_u_TA_FOSC_Clone __pyx_string_tab[1664] +#define __pyx_n_u_TA_FOSC_Open __pyx_string_tab[1665] +#define __pyx_n_u_TA_FOSC_OpenAndFill __pyx_string_tab[1666] +#define __pyx_n_u_TA_FOSC_Peek __pyx_string_tab[1667] +#define __pyx_n_u_TA_FOSC_Update __pyx_string_tab[1668] +#define __pyx_n_u_TA_FOSC_Value __pyx_string_tab[1669] +#define __pyx_n_u_TA_FRACTAL __pyx_string_tab[1670] +#define __pyx_n_u_TA_FRACTAL_Clone __pyx_string_tab[1671] +#define __pyx_n_u_TA_FRACTAL_Open __pyx_string_tab[1672] +#define __pyx_n_u_TA_FRACTAL_OpenAndFill __pyx_string_tab[1673] +#define __pyx_n_u_TA_FRACTAL_Peek __pyx_string_tab[1674] +#define __pyx_n_u_TA_FRACTAL_Update __pyx_string_tab[1675] +#define __pyx_n_u_TA_FRACTAL_Value __pyx_string_tab[1676] +#define __pyx_n_u_TA_FRAMA __pyx_string_tab[1677] +#define __pyx_n_u_TA_FRAMA_Clone __pyx_string_tab[1678] +#define __pyx_n_u_TA_FRAMA_Open __pyx_string_tab[1679] +#define __pyx_n_u_TA_FRAMA_OpenAndFill __pyx_string_tab[1680] +#define __pyx_n_u_TA_FRAMA_Peek __pyx_string_tab[1681] +#define __pyx_n_u_TA_FRAMA_Update __pyx_string_tab[1682] +#define __pyx_n_u_TA_FRAMA_Value __pyx_string_tab[1683] +#define __pyx_n_u_TA_FUNC_FLAGS __pyx_string_tab[1684] +#define __pyx_n_u_TA_FuncTableAlloc __pyx_string_tab[1685] +#define __pyx_n_u_TA_FuncTableFree __pyx_string_tab[1686] +#define __pyx_n_u_TA_GetFuncHandle __pyx_string_tab[1687] +#define __pyx_n_u_TA_GetFuncInfo __pyx_string_tab[1688] +#define __pyx_n_u_TA_GetInputParameterInfo __pyx_string_tab[1689] +#define __pyx_n_u_TA_GetLookback __pyx_string_tab[1690] +#define __pyx_n_u_TA_GetOptInputParameterInfo __pyx_string_tab[1691] +#define __pyx_n_u_TA_GetOutputParameterInfo __pyx_string_tab[1692] +#define __pyx_n_u_TA_GetRuntimeInfo __pyx_string_tab[1693] +#define __pyx_n_u_TA_GroupTableAlloc __pyx_string_tab[1694] +#define __pyx_n_u_TA_GroupTableFree __pyx_string_tab[1695] +#define __pyx_n_u_TA_HA __pyx_string_tab[1696] +#define __pyx_n_u_TA_HA_Clone __pyx_string_tab[1697] +#define __pyx_n_u_TA_HA_Open __pyx_string_tab[1698] +#define __pyx_n_u_TA_HA_OpenAndFill __pyx_string_tab[1699] +#define __pyx_n_u_TA_HA_Peek __pyx_string_tab[1700] +#define __pyx_n_u_TA_HA_Update __pyx_string_tab[1701] +#define __pyx_n_u_TA_HA_Value __pyx_string_tab[1702] +#define __pyx_n_u_TA_HMA __pyx_string_tab[1703] +#define __pyx_n_u_TA_HMA_Clone __pyx_string_tab[1704] +#define __pyx_n_u_TA_HMA_Open __pyx_string_tab[1705] +#define __pyx_n_u_TA_HMA_OpenAndFill __pyx_string_tab[1706] +#define __pyx_n_u_TA_HMA_Peek __pyx_string_tab[1707] +#define __pyx_n_u_TA_HMA_Update __pyx_string_tab[1708] +#define __pyx_n_u_TA_HMA_Value __pyx_string_tab[1709] +#define __pyx_n_u_TA_HT_DCPERIOD __pyx_string_tab[1710] +#define __pyx_n_u_TA_HT_DCPERIOD_Clone __pyx_string_tab[1711] +#define __pyx_n_u_TA_HT_DCPERIOD_Open __pyx_string_tab[1712] +#define __pyx_n_u_TA_HT_DCPERIOD_OpenAndFill __pyx_string_tab[1713] +#define __pyx_n_u_TA_HT_DCPERIOD_Peek __pyx_string_tab[1714] +#define __pyx_n_u_TA_HT_DCPERIOD_Update __pyx_string_tab[1715] +#define __pyx_n_u_TA_HT_DCPERIOD_Value __pyx_string_tab[1716] +#define __pyx_n_u_TA_HT_DCPHASE __pyx_string_tab[1717] +#define __pyx_n_u_TA_HT_DCPHASE_Clone __pyx_string_tab[1718] +#define __pyx_n_u_TA_HT_DCPHASE_Open __pyx_string_tab[1719] +#define __pyx_n_u_TA_HT_DCPHASE_OpenAndFill __pyx_string_tab[1720] +#define __pyx_n_u_TA_HT_DCPHASE_Peek __pyx_string_tab[1721] +#define __pyx_n_u_TA_HT_DCPHASE_Update __pyx_string_tab[1722] +#define __pyx_n_u_TA_HT_DCPHASE_Value __pyx_string_tab[1723] +#define __pyx_n_u_TA_HT_PHASOR __pyx_string_tab[1724] +#define __pyx_n_u_TA_HT_PHASOR_Clone __pyx_string_tab[1725] +#define __pyx_n_u_TA_HT_PHASOR_Open __pyx_string_tab[1726] +#define __pyx_n_u_TA_HT_PHASOR_OpenAndFill __pyx_string_tab[1727] +#define __pyx_n_u_TA_HT_PHASOR_Peek __pyx_string_tab[1728] +#define __pyx_n_u_TA_HT_PHASOR_Update __pyx_string_tab[1729] +#define __pyx_n_u_TA_HT_PHASOR_Value __pyx_string_tab[1730] +#define __pyx_n_u_TA_HT_SINE __pyx_string_tab[1731] +#define __pyx_n_u_TA_HT_SINE_Clone __pyx_string_tab[1732] +#define __pyx_n_u_TA_HT_SINE_Open __pyx_string_tab[1733] +#define __pyx_n_u_TA_HT_SINE_OpenAndFill __pyx_string_tab[1734] +#define __pyx_n_u_TA_HT_SINE_Peek __pyx_string_tab[1735] +#define __pyx_n_u_TA_HT_SINE_Update __pyx_string_tab[1736] +#define __pyx_n_u_TA_HT_SINE_Value __pyx_string_tab[1737] +#define __pyx_n_u_TA_HT_TRENDLINE __pyx_string_tab[1738] +#define __pyx_n_u_TA_HT_TRENDLINE_Clone __pyx_string_tab[1739] +#define __pyx_n_u_TA_HT_TRENDLINE_Open __pyx_string_tab[1740] +#define __pyx_n_u_TA_HT_TRENDLINE_OpenAndFill __pyx_string_tab[1741] +#define __pyx_n_u_TA_HT_TRENDLINE_Peek __pyx_string_tab[1742] +#define __pyx_n_u_TA_HT_TRENDLINE_Update __pyx_string_tab[1743] +#define __pyx_n_u_TA_HT_TRENDLINE_Value __pyx_string_tab[1744] +#define __pyx_n_u_TA_HT_TRENDMODE __pyx_string_tab[1745] +#define __pyx_n_u_TA_HT_TRENDMODE_Clone __pyx_string_tab[1746] +#define __pyx_n_u_TA_HT_TRENDMODE_Open __pyx_string_tab[1747] +#define __pyx_n_u_TA_HT_TRENDMODE_OpenAndFill __pyx_string_tab[1748] +#define __pyx_n_u_TA_HT_TRENDMODE_Peek __pyx_string_tab[1749] +#define __pyx_n_u_TA_HT_TRENDMODE_Update __pyx_string_tab[1750] +#define __pyx_n_u_TA_HT_TRENDMODE_Value __pyx_string_tab[1751] +#define __pyx_n_u_TA_IBS __pyx_string_tab[1752] +#define __pyx_n_u_TA_IBS_Clone __pyx_string_tab[1753] +#define __pyx_n_u_TA_IBS_Open __pyx_string_tab[1754] +#define __pyx_n_u_TA_IBS_OpenAndFill __pyx_string_tab[1755] +#define __pyx_n_u_TA_IBS_Peek __pyx_string_tab[1756] +#define __pyx_n_u_TA_IBS_Update __pyx_string_tab[1757] +#define __pyx_n_u_TA_IBS_Value __pyx_string_tab[1758] +#define __pyx_n_u_TA_ICHIMOKU __pyx_string_tab[1759] +#define __pyx_n_u_TA_ICHIMOKU_Clone __pyx_string_tab[1760] +#define __pyx_n_u_TA_ICHIMOKU_Open __pyx_string_tab[1761] +#define __pyx_n_u_TA_ICHIMOKU_OpenAndFill __pyx_string_tab[1762] +#define __pyx_n_u_TA_ICHIMOKU_Peek __pyx_string_tab[1763] +#define __pyx_n_u_TA_ICHIMOKU_Update __pyx_string_tab[1764] +#define __pyx_n_u_TA_ICHIMOKU_Value __pyx_string_tab[1765] +#define __pyx_n_u_TA_IMI __pyx_string_tab[1766] +#define __pyx_n_u_TA_IMI_Clone __pyx_string_tab[1767] +#define __pyx_n_u_TA_IMI_Open __pyx_string_tab[1768] +#define __pyx_n_u_TA_IMI_OpenAndFill __pyx_string_tab[1769] +#define __pyx_n_u_TA_IMI_Peek __pyx_string_tab[1770] +#define __pyx_n_u_TA_IMI_Update __pyx_string_tab[1771] +#define __pyx_n_u_TA_IMI_Value __pyx_string_tab[1772] +#define __pyx_n_u_TA_INPUT_FLAGS __pyx_string_tab[1773] +#define __pyx_n_u_TA_Initialize __pyx_string_tab[1774] +#define __pyx_n_u_TA_KAMA __pyx_string_tab[1775] +#define __pyx_n_u_TA_KAMA_Clone __pyx_string_tab[1776] +#define __pyx_n_u_TA_KAMA_Open __pyx_string_tab[1777] +#define __pyx_n_u_TA_KAMA_OpenAndFill __pyx_string_tab[1778] +#define __pyx_n_u_TA_KAMA_Peek __pyx_string_tab[1779] +#define __pyx_n_u_TA_KAMA_Update __pyx_string_tab[1780] +#define __pyx_n_u_TA_KAMA_Value __pyx_string_tab[1781] +#define __pyx_n_u_TA_KC __pyx_string_tab[1782] +#define __pyx_n_u_TA_KC_Clone __pyx_string_tab[1783] +#define __pyx_n_u_TA_KC_Open __pyx_string_tab[1784] +#define __pyx_n_u_TA_KC_OpenAndFill __pyx_string_tab[1785] +#define __pyx_n_u_TA_KC_Peek __pyx_string_tab[1786] +#define __pyx_n_u_TA_KC_Update __pyx_string_tab[1787] +#define __pyx_n_u_TA_KC_Value __pyx_string_tab[1788] +#define __pyx_n_u_TA_KDJ __pyx_string_tab[1789] +#define __pyx_n_u_TA_KDJ_Clone __pyx_string_tab[1790] +#define __pyx_n_u_TA_KDJ_Open __pyx_string_tab[1791] +#define __pyx_n_u_TA_KDJ_OpenAndFill __pyx_string_tab[1792] +#define __pyx_n_u_TA_KDJ_Peek __pyx_string_tab[1793] +#define __pyx_n_u_TA_KDJ_Update __pyx_string_tab[1794] +#define __pyx_n_u_TA_KDJ_Value __pyx_string_tab[1795] +#define __pyx_n_u_TA_KST __pyx_string_tab[1796] +#define __pyx_n_u_TA_KSTEXT __pyx_string_tab[1797] +#define __pyx_n_u_TA_KSTEXT_Clone __pyx_string_tab[1798] +#define __pyx_n_u_TA_KSTEXT_Open __pyx_string_tab[1799] +#define __pyx_n_u_TA_KSTEXT_OpenAndFill __pyx_string_tab[1800] +#define __pyx_n_u_TA_KSTEXT_Peek __pyx_string_tab[1801] +#define __pyx_n_u_TA_KSTEXT_Update __pyx_string_tab[1802] +#define __pyx_n_u_TA_KSTEXT_Value __pyx_string_tab[1803] +#define __pyx_n_u_TA_KST_Clone __pyx_string_tab[1804] +#define __pyx_n_u_TA_KST_Open __pyx_string_tab[1805] +#define __pyx_n_u_TA_KST_OpenAndFill __pyx_string_tab[1806] +#define __pyx_n_u_TA_KST_Peek __pyx_string_tab[1807] +#define __pyx_n_u_TA_KST_Update __pyx_string_tab[1808] +#define __pyx_n_u_TA_KST_Value __pyx_string_tab[1809] +#define __pyx_n_u_TA_KURTOSIS __pyx_string_tab[1810] +#define __pyx_n_u_TA_KURTOSIS_Clone __pyx_string_tab[1811] +#define __pyx_n_u_TA_KURTOSIS_Open __pyx_string_tab[1812] +#define __pyx_n_u_TA_KURTOSIS_OpenAndFill __pyx_string_tab[1813] +#define __pyx_n_u_TA_KURTOSIS_Peek __pyx_string_tab[1814] +#define __pyx_n_u_TA_KURTOSIS_Update __pyx_string_tab[1815] +#define __pyx_n_u_TA_KURTOSIS_Value __pyx_string_tab[1816] +#define __pyx_n_u_TA_KVO __pyx_string_tab[1817] +#define __pyx_n_u_TA_KVO_Clone __pyx_string_tab[1818] +#define __pyx_n_u_TA_KVO_Open __pyx_string_tab[1819] +#define __pyx_n_u_TA_KVO_OpenAndFill __pyx_string_tab[1820] +#define __pyx_n_u_TA_KVO_Peek __pyx_string_tab[1821] +#define __pyx_n_u_TA_KVO_Update __pyx_string_tab[1822] +#define __pyx_n_u_TA_KVO_Value __pyx_string_tab[1823] +#define __pyx_n_u_TA_LINEARREG __pyx_string_tab[1824] +#define __pyx_n_u_TA_LINEARREG_ANGLE __pyx_string_tab[1825] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Clone __pyx_string_tab[1826] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Open __pyx_string_tab[1827] +#define __pyx_n_u_TA_LINEARREG_ANGLE_OpenAndFill __pyx_string_tab[1828] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Peek __pyx_string_tab[1829] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Update __pyx_string_tab[1830] +#define __pyx_n_u_TA_LINEARREG_ANGLE_Value __pyx_string_tab[1831] +#define __pyx_n_u_TA_LINEARREG_Clone __pyx_string_tab[1832] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT __pyx_string_tab[1833] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Clone __pyx_string_tab[1834] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Open __pyx_string_tab[1835] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_OpenAndFi __pyx_string_tab[1836] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Peek __pyx_string_tab[1837] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Update __pyx_string_tab[1838] +#define __pyx_n_u_TA_LINEARREG_INTERCEPT_Value __pyx_string_tab[1839] +#define __pyx_n_u_TA_LINEARREG_Open __pyx_string_tab[1840] +#define __pyx_n_u_TA_LINEARREG_OpenAndFill __pyx_string_tab[1841] +#define __pyx_n_u_TA_LINEARREG_Peek __pyx_string_tab[1842] +#define __pyx_n_u_TA_LINEARREG_SLOPE __pyx_string_tab[1843] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Clone __pyx_string_tab[1844] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Open __pyx_string_tab[1845] +#define __pyx_n_u_TA_LINEARREG_SLOPE_OpenAndFill __pyx_string_tab[1846] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Peek __pyx_string_tab[1847] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Update __pyx_string_tab[1848] +#define __pyx_n_u_TA_LINEARREG_SLOPE_Value __pyx_string_tab[1849] +#define __pyx_n_u_TA_LINEARREG_Update __pyx_string_tab[1850] +#define __pyx_n_u_TA_LINEARREG_Value __pyx_string_tab[1851] +#define __pyx_n_u_TA_LN __pyx_string_tab[1852] +#define __pyx_n_u_TA_LN_Clone __pyx_string_tab[1853] +#define __pyx_n_u_TA_LN_Open __pyx_string_tab[1854] +#define __pyx_n_u_TA_LN_OpenAndFill __pyx_string_tab[1855] +#define __pyx_n_u_TA_LN_Peek __pyx_string_tab[1856] +#define __pyx_n_u_TA_LN_Update __pyx_string_tab[1857] +#define __pyx_n_u_TA_LN_Value __pyx_string_tab[1858] +#define __pyx_n_u_TA_LOG10 __pyx_string_tab[1859] +#define __pyx_n_u_TA_LOG10_Clone __pyx_string_tab[1860] +#define __pyx_n_u_TA_LOG10_Open __pyx_string_tab[1861] +#define __pyx_n_u_TA_LOG10_OpenAndFill __pyx_string_tab[1862] +#define __pyx_n_u_TA_LOG10_Peek __pyx_string_tab[1863] +#define __pyx_n_u_TA_LOG10_Update __pyx_string_tab[1864] +#define __pyx_n_u_TA_LOG10_Value __pyx_string_tab[1865] +#define __pyx_n_u_TA_MA __pyx_string_tab[1866] +#define __pyx_n_u_TA_MACD __pyx_string_tab[1867] +#define __pyx_n_u_TA_MACDEXT __pyx_string_tab[1868] +#define __pyx_n_u_TA_MACDEXT_Clone __pyx_string_tab[1869] +#define __pyx_n_u_TA_MACDEXT_Open __pyx_string_tab[1870] +#define __pyx_n_u_TA_MACDEXT_OpenAndFill __pyx_string_tab[1871] +#define __pyx_n_u_TA_MACDEXT_Peek __pyx_string_tab[1872] +#define __pyx_n_u_TA_MACDEXT_Update __pyx_string_tab[1873] +#define __pyx_n_u_TA_MACDEXT_Value __pyx_string_tab[1874] +#define __pyx_n_u_TA_MACDFIX __pyx_string_tab[1875] +#define __pyx_n_u_TA_MACDFIX_Clone __pyx_string_tab[1876] +#define __pyx_n_u_TA_MACDFIX_Open __pyx_string_tab[1877] +#define __pyx_n_u_TA_MACDFIX_OpenAndFill __pyx_string_tab[1878] +#define __pyx_n_u_TA_MACDFIX_Peek __pyx_string_tab[1879] +#define __pyx_n_u_TA_MACDFIX_Update __pyx_string_tab[1880] +#define __pyx_n_u_TA_MACDFIX_Value __pyx_string_tab[1881] +#define __pyx_n_u_TA_MACD_Clone __pyx_string_tab[1882] +#define __pyx_n_u_TA_MACD_Open __pyx_string_tab[1883] +#define __pyx_n_u_TA_MACD_OpenAndFill __pyx_string_tab[1884] +#define __pyx_n_u_TA_MACD_Peek __pyx_string_tab[1885] +#define __pyx_n_u_TA_MACD_Update __pyx_string_tab[1886] +#define __pyx_n_u_TA_MACD_Value __pyx_string_tab[1887] +#define __pyx_n_u_TA_MAMA __pyx_string_tab[1888] +#define __pyx_n_u_TA_MAMA_Clone __pyx_string_tab[1889] +#define __pyx_n_u_TA_MAMA_Open __pyx_string_tab[1890] +#define __pyx_n_u_TA_MAMA_OpenAndFill __pyx_string_tab[1891] +#define __pyx_n_u_TA_MAMA_Peek __pyx_string_tab[1892] +#define __pyx_n_u_TA_MAMA_Update __pyx_string_tab[1893] +#define __pyx_n_u_TA_MAMA_Value __pyx_string_tab[1894] +#define __pyx_n_u_TA_MARKETFI __pyx_string_tab[1895] +#define __pyx_n_u_TA_MARKETFI_Clone __pyx_string_tab[1896] +#define __pyx_n_u_TA_MARKETFI_Open __pyx_string_tab[1897] +#define __pyx_n_u_TA_MARKETFI_OpenAndFill __pyx_string_tab[1898] +#define __pyx_n_u_TA_MARKETFI_Peek __pyx_string_tab[1899] +#define __pyx_n_u_TA_MARKETFI_Update __pyx_string_tab[1900] +#define __pyx_n_u_TA_MARKETFI_Value __pyx_string_tab[1901] +#define __pyx_n_u_TA_MASSI __pyx_string_tab[1902] +#define __pyx_n_u_TA_MASSI_Clone __pyx_string_tab[1903] +#define __pyx_n_u_TA_MASSI_Open __pyx_string_tab[1904] +#define __pyx_n_u_TA_MASSI_OpenAndFill __pyx_string_tab[1905] +#define __pyx_n_u_TA_MASSI_Peek __pyx_string_tab[1906] +#define __pyx_n_u_TA_MASSI_Update __pyx_string_tab[1907] +#define __pyx_n_u_TA_MASSI_Value __pyx_string_tab[1908] +#define __pyx_n_u_TA_MAVP __pyx_string_tab[1909] +#define __pyx_n_u_TA_MAVP_Clone __pyx_string_tab[1910] +#define __pyx_n_u_TA_MAVP_Open __pyx_string_tab[1911] +#define __pyx_n_u_TA_MAVP_OpenAndFill __pyx_string_tab[1912] +#define __pyx_n_u_TA_MAVP_Peek __pyx_string_tab[1913] +#define __pyx_n_u_TA_MAVP_Update __pyx_string_tab[1914] +#define __pyx_n_u_TA_MAVP_Value __pyx_string_tab[1915] +#define __pyx_n_u_TA_MAX __pyx_string_tab[1916] +#define __pyx_n_u_TA_MAXINDEX __pyx_string_tab[1917] +#define __pyx_n_u_TA_MAXINDEX_Clone __pyx_string_tab[1918] +#define __pyx_n_u_TA_MAXINDEX_Open __pyx_string_tab[1919] +#define __pyx_n_u_TA_MAXINDEX_OpenAndFill __pyx_string_tab[1920] +#define __pyx_n_u_TA_MAXINDEX_Peek __pyx_string_tab[1921] +#define __pyx_n_u_TA_MAXINDEX_Update __pyx_string_tab[1922] +#define __pyx_n_u_TA_MAXINDEX_Value __pyx_string_tab[1923] +#define __pyx_n_u_TA_MAX_Clone __pyx_string_tab[1924] +#define __pyx_n_u_TA_MAX_Open __pyx_string_tab[1925] +#define __pyx_n_u_TA_MAX_OpenAndFill __pyx_string_tab[1926] +#define __pyx_n_u_TA_MAX_Peek __pyx_string_tab[1927] +#define __pyx_n_u_TA_MAX_Update __pyx_string_tab[1928] +#define __pyx_n_u_TA_MAX_Value __pyx_string_tab[1929] +#define __pyx_n_u_TA_MA_Clone __pyx_string_tab[1930] +#define __pyx_n_u_TA_MA_Open __pyx_string_tab[1931] +#define __pyx_n_u_TA_MA_OpenAndFill __pyx_string_tab[1932] +#define __pyx_n_u_TA_MA_Peek __pyx_string_tab[1933] +#define __pyx_n_u_TA_MA_Update __pyx_string_tab[1934] +#define __pyx_n_u_TA_MA_Value __pyx_string_tab[1935] +#define __pyx_n_u_TA_MCGD __pyx_string_tab[1936] +#define __pyx_n_u_TA_MCGD_Clone __pyx_string_tab[1937] +#define __pyx_n_u_TA_MCGD_Open __pyx_string_tab[1938] +#define __pyx_n_u_TA_MCGD_OpenAndFill __pyx_string_tab[1939] +#define __pyx_n_u_TA_MCGD_Peek __pyx_string_tab[1940] +#define __pyx_n_u_TA_MCGD_Update __pyx_string_tab[1941] +#define __pyx_n_u_TA_MCGD_Value __pyx_string_tab[1942] +#define __pyx_n_u_TA_MEDIAN __pyx_string_tab[1943] +#define __pyx_n_u_TA_MEDIAN_Clone __pyx_string_tab[1944] +#define __pyx_n_u_TA_MEDIAN_Open __pyx_string_tab[1945] +#define __pyx_n_u_TA_MEDIAN_OpenAndFill __pyx_string_tab[1946] +#define __pyx_n_u_TA_MEDIAN_Peek __pyx_string_tab[1947] +#define __pyx_n_u_TA_MEDIAN_Update __pyx_string_tab[1948] +#define __pyx_n_u_TA_MEDIAN_Value __pyx_string_tab[1949] +#define __pyx_n_u_TA_MEDPRICE __pyx_string_tab[1950] +#define __pyx_n_u_TA_MEDPRICE_Clone __pyx_string_tab[1951] +#define __pyx_n_u_TA_MEDPRICE_Open __pyx_string_tab[1952] +#define __pyx_n_u_TA_MEDPRICE_OpenAndFill __pyx_string_tab[1953] +#define __pyx_n_u_TA_MEDPRICE_Peek __pyx_string_tab[1954] +#define __pyx_n_u_TA_MEDPRICE_Update __pyx_string_tab[1955] +#define __pyx_n_u_TA_MEDPRICE_Value __pyx_string_tab[1956] +#define __pyx_n_u_TA_MFI __pyx_string_tab[1957] +#define __pyx_n_u_TA_MFI_Clone __pyx_string_tab[1958] +#define __pyx_n_u_TA_MFI_Open __pyx_string_tab[1959] +#define __pyx_n_u_TA_MFI_OpenAndFill __pyx_string_tab[1960] +#define __pyx_n_u_TA_MFI_Peek __pyx_string_tab[1961] +#define __pyx_n_u_TA_MFI_Update __pyx_string_tab[1962] +#define __pyx_n_u_TA_MFI_Value __pyx_string_tab[1963] +#define __pyx_n_u_TA_MIDPOINT __pyx_string_tab[1964] +#define __pyx_n_u_TA_MIDPOINT_Clone __pyx_string_tab[1965] +#define __pyx_n_u_TA_MIDPOINT_Open __pyx_string_tab[1966] +#define __pyx_n_u_TA_MIDPOINT_OpenAndFill __pyx_string_tab[1967] +#define __pyx_n_u_TA_MIDPOINT_Peek __pyx_string_tab[1968] +#define __pyx_n_u_TA_MIDPOINT_Update __pyx_string_tab[1969] +#define __pyx_n_u_TA_MIDPOINT_Value __pyx_string_tab[1970] +#define __pyx_n_u_TA_MIDPRICE __pyx_string_tab[1971] +#define __pyx_n_u_TA_MIDPRICE_Clone __pyx_string_tab[1972] +#define __pyx_n_u_TA_MIDPRICE_Open __pyx_string_tab[1973] +#define __pyx_n_u_TA_MIDPRICE_OpenAndFill __pyx_string_tab[1974] +#define __pyx_n_u_TA_MIDPRICE_Peek __pyx_string_tab[1975] +#define __pyx_n_u_TA_MIDPRICE_Update __pyx_string_tab[1976] +#define __pyx_n_u_TA_MIDPRICE_Value __pyx_string_tab[1977] +#define __pyx_n_u_TA_MIN __pyx_string_tab[1978] +#define __pyx_n_u_TA_MININDEX __pyx_string_tab[1979] +#define __pyx_n_u_TA_MININDEX_Clone __pyx_string_tab[1980] +#define __pyx_n_u_TA_MININDEX_Open __pyx_string_tab[1981] +#define __pyx_n_u_TA_MININDEX_OpenAndFill __pyx_string_tab[1982] +#define __pyx_n_u_TA_MININDEX_Peek __pyx_string_tab[1983] +#define __pyx_n_u_TA_MININDEX_Update __pyx_string_tab[1984] +#define __pyx_n_u_TA_MININDEX_Value __pyx_string_tab[1985] +#define __pyx_n_u_TA_MINMAX __pyx_string_tab[1986] +#define __pyx_n_u_TA_MINMAXINDEX __pyx_string_tab[1987] +#define __pyx_n_u_TA_MINMAXINDEX_Clone __pyx_string_tab[1988] +#define __pyx_n_u_TA_MINMAXINDEX_Open __pyx_string_tab[1989] +#define __pyx_n_u_TA_MINMAXINDEX_OpenAndFill __pyx_string_tab[1990] +#define __pyx_n_u_TA_MINMAXINDEX_Peek __pyx_string_tab[1991] +#define __pyx_n_u_TA_MINMAXINDEX_Update __pyx_string_tab[1992] +#define __pyx_n_u_TA_MINMAXINDEX_Value __pyx_string_tab[1993] +#define __pyx_n_u_TA_MINMAX_Clone __pyx_string_tab[1994] +#define __pyx_n_u_TA_MINMAX_Open __pyx_string_tab[1995] +#define __pyx_n_u_TA_MINMAX_OpenAndFill __pyx_string_tab[1996] +#define __pyx_n_u_TA_MINMAX_Peek __pyx_string_tab[1997] +#define __pyx_n_u_TA_MINMAX_Update __pyx_string_tab[1998] +#define __pyx_n_u_TA_MINMAX_Value __pyx_string_tab[1999] +#define __pyx_n_u_TA_MINUS_DI __pyx_string_tab[2000] +#define __pyx_n_u_TA_MINUS_DI_Clone __pyx_string_tab[2001] +#define __pyx_n_u_TA_MINUS_DI_Open __pyx_string_tab[2002] +#define __pyx_n_u_TA_MINUS_DI_OpenAndFill __pyx_string_tab[2003] +#define __pyx_n_u_TA_MINUS_DI_Peek __pyx_string_tab[2004] +#define __pyx_n_u_TA_MINUS_DI_Update __pyx_string_tab[2005] +#define __pyx_n_u_TA_MINUS_DI_Value __pyx_string_tab[2006] +#define __pyx_n_u_TA_MINUS_DM __pyx_string_tab[2007] +#define __pyx_n_u_TA_MINUS_DM_Clone __pyx_string_tab[2008] +#define __pyx_n_u_TA_MINUS_DM_Open __pyx_string_tab[2009] +#define __pyx_n_u_TA_MINUS_DM_OpenAndFill __pyx_string_tab[2010] +#define __pyx_n_u_TA_MINUS_DM_Peek __pyx_string_tab[2011] +#define __pyx_n_u_TA_MINUS_DM_Update __pyx_string_tab[2012] +#define __pyx_n_u_TA_MINUS_DM_Value __pyx_string_tab[2013] +#define __pyx_n_u_TA_MIN_Clone __pyx_string_tab[2014] +#define __pyx_n_u_TA_MIN_Open __pyx_string_tab[2015] +#define __pyx_n_u_TA_MIN_OpenAndFill __pyx_string_tab[2016] +#define __pyx_n_u_TA_MIN_Peek __pyx_string_tab[2017] +#define __pyx_n_u_TA_MIN_Update __pyx_string_tab[2018] +#define __pyx_n_u_TA_MIN_Value __pyx_string_tab[2019] +#define __pyx_n_u_TA_MOM __pyx_string_tab[2020] +#define __pyx_n_u_TA_MOM_Clone __pyx_string_tab[2021] +#define __pyx_n_u_TA_MOM_Open __pyx_string_tab[2022] +#define __pyx_n_u_TA_MOM_OpenAndFill __pyx_string_tab[2023] +#define __pyx_n_u_TA_MOM_Peek __pyx_string_tab[2024] +#define __pyx_n_u_TA_MOM_Update __pyx_string_tab[2025] +#define __pyx_n_u_TA_MOM_Value __pyx_string_tab[2026] +#define __pyx_n_u_TA_MULT __pyx_string_tab[2027] +#define __pyx_n_u_TA_MULT_Clone __pyx_string_tab[2028] +#define __pyx_n_u_TA_MULT_Open __pyx_string_tab[2029] +#define __pyx_n_u_TA_MULT_OpenAndFill __pyx_string_tab[2030] +#define __pyx_n_u_TA_MULT_Peek __pyx_string_tab[2031] +#define __pyx_n_u_TA_MULT_Update __pyx_string_tab[2032] +#define __pyx_n_u_TA_MULT_Value __pyx_string_tab[2033] +#define __pyx_n_u_TA_NATR __pyx_string_tab[2034] +#define __pyx_n_u_TA_NATR_Clone __pyx_string_tab[2035] +#define __pyx_n_u_TA_NATR_Open __pyx_string_tab[2036] +#define __pyx_n_u_TA_NATR_OpenAndFill __pyx_string_tab[2037] +#define __pyx_n_u_TA_NATR_Peek __pyx_string_tab[2038] +#define __pyx_n_u_TA_NATR_Update __pyx_string_tab[2039] +#define __pyx_n_u_TA_NATR_Value __pyx_string_tab[2040] +#define __pyx_n_u_TA_NVI __pyx_string_tab[2041] +#define __pyx_n_u_TA_NVI_Clone __pyx_string_tab[2042] +#define __pyx_n_u_TA_NVI_Open __pyx_string_tab[2043] +#define __pyx_n_u_TA_NVI_OpenAndFill __pyx_string_tab[2044] +#define __pyx_n_u_TA_NVI_Peek __pyx_string_tab[2045] +#define __pyx_n_u_TA_NVI_Update __pyx_string_tab[2046] +#define __pyx_n_u_TA_NVI_Value __pyx_string_tab[2047] +#define __pyx_n_u_TA_OBV __pyx_string_tab[2048] +#define __pyx_n_u_TA_OBV_Clone __pyx_string_tab[2049] +#define __pyx_n_u_TA_OBV_Open __pyx_string_tab[2050] +#define __pyx_n_u_TA_OBV_OpenAndFill __pyx_string_tab[2051] +#define __pyx_n_u_TA_OBV_Peek __pyx_string_tab[2052] +#define __pyx_n_u_TA_OBV_Update __pyx_string_tab[2053] +#define __pyx_n_u_TA_OBV_Value __pyx_string_tab[2054] +#define __pyx_n_u_TA_OUTPUT_FLAGS __pyx_string_tab[2055] +#define __pyx_n_u_TA_PERCENTB __pyx_string_tab[2056] +#define __pyx_n_u_TA_PERCENTB_Clone __pyx_string_tab[2057] +#define __pyx_n_u_TA_PERCENTB_Open __pyx_string_tab[2058] +#define __pyx_n_u_TA_PERCENTB_OpenAndFill __pyx_string_tab[2059] +#define __pyx_n_u_TA_PERCENTB_Peek __pyx_string_tab[2060] +#define __pyx_n_u_TA_PERCENTB_Update __pyx_string_tab[2061] +#define __pyx_n_u_TA_PERCENTB_Value __pyx_string_tab[2062] +#define __pyx_n_u_TA_PERCENTILE __pyx_string_tab[2063] +#define __pyx_n_u_TA_PERCENTILE_Clone __pyx_string_tab[2064] +#define __pyx_n_u_TA_PERCENTILE_Open __pyx_string_tab[2065] +#define __pyx_n_u_TA_PERCENTILE_OpenAndFill __pyx_string_tab[2066] +#define __pyx_n_u_TA_PERCENTILE_Peek __pyx_string_tab[2067] +#define __pyx_n_u_TA_PERCENTILE_Update __pyx_string_tab[2068] +#define __pyx_n_u_TA_PERCENTILE_Value __pyx_string_tab[2069] +#define __pyx_n_u_TA_PERCENTRANK __pyx_string_tab[2070] +#define __pyx_n_u_TA_PERCENTRANK_Clone __pyx_string_tab[2071] +#define __pyx_n_u_TA_PERCENTRANK_Open __pyx_string_tab[2072] +#define __pyx_n_u_TA_PERCENTRANK_OpenAndFill __pyx_string_tab[2073] +#define __pyx_n_u_TA_PERCENTRANK_Peek __pyx_string_tab[2074] +#define __pyx_n_u_TA_PERCENTRANK_Update __pyx_string_tab[2075] +#define __pyx_n_u_TA_PERCENTRANK_Value __pyx_string_tab[2076] +#define __pyx_n_u_TA_PLUS_DI __pyx_string_tab[2077] +#define __pyx_n_u_TA_PLUS_DI_Clone __pyx_string_tab[2078] +#define __pyx_n_u_TA_PLUS_DI_Open __pyx_string_tab[2079] +#define __pyx_n_u_TA_PLUS_DI_OpenAndFill __pyx_string_tab[2080] +#define __pyx_n_u_TA_PLUS_DI_Peek __pyx_string_tab[2081] +#define __pyx_n_u_TA_PLUS_DI_Update __pyx_string_tab[2082] +#define __pyx_n_u_TA_PLUS_DI_Value __pyx_string_tab[2083] +#define __pyx_n_u_TA_PLUS_DM __pyx_string_tab[2084] +#define __pyx_n_u_TA_PLUS_DM_Clone __pyx_string_tab[2085] +#define __pyx_n_u_TA_PLUS_DM_Open __pyx_string_tab[2086] +#define __pyx_n_u_TA_PLUS_DM_OpenAndFill __pyx_string_tab[2087] +#define __pyx_n_u_TA_PLUS_DM_Peek __pyx_string_tab[2088] +#define __pyx_n_u_TA_PLUS_DM_Update __pyx_string_tab[2089] +#define __pyx_n_u_TA_PLUS_DM_Value __pyx_string_tab[2090] +#define __pyx_n_u_TA_PPO __pyx_string_tab[2091] +#define __pyx_n_u_TA_PPO_Clone __pyx_string_tab[2092] +#define __pyx_n_u_TA_PPO_Open __pyx_string_tab[2093] +#define __pyx_n_u_TA_PPO_OpenAndFill __pyx_string_tab[2094] +#define __pyx_n_u_TA_PPO_Peek __pyx_string_tab[2095] +#define __pyx_n_u_TA_PPO_Update __pyx_string_tab[2096] +#define __pyx_n_u_TA_PPO_Value __pyx_string_tab[2097] +#define __pyx_n_u_TA_PSO __pyx_string_tab[2098] +#define __pyx_n_u_TA_PSO_Clone __pyx_string_tab[2099] +#define __pyx_n_u_TA_PSO_Open __pyx_string_tab[2100] +#define __pyx_n_u_TA_PSO_OpenAndFill __pyx_string_tab[2101] +#define __pyx_n_u_TA_PSO_Peek __pyx_string_tab[2102] +#define __pyx_n_u_TA_PSO_Update __pyx_string_tab[2103] +#define __pyx_n_u_TA_PSO_Value __pyx_string_tab[2104] +#define __pyx_n_u_TA_PVI __pyx_string_tab[2105] +#define __pyx_n_u_TA_PVI_Clone __pyx_string_tab[2106] +#define __pyx_n_u_TA_PVI_Open __pyx_string_tab[2107] +#define __pyx_n_u_TA_PVI_OpenAndFill __pyx_string_tab[2108] +#define __pyx_n_u_TA_PVI_Peek __pyx_string_tab[2109] +#define __pyx_n_u_TA_PVI_Update __pyx_string_tab[2110] +#define __pyx_n_u_TA_PVI_Value __pyx_string_tab[2111] +#define __pyx_n_u_TA_PVO __pyx_string_tab[2112] +#define __pyx_n_u_TA_PVO_Clone __pyx_string_tab[2113] +#define __pyx_n_u_TA_PVO_Open __pyx_string_tab[2114] +#define __pyx_n_u_TA_PVO_OpenAndFill __pyx_string_tab[2115] +#define __pyx_n_u_TA_PVO_Peek __pyx_string_tab[2116] +#define __pyx_n_u_TA_PVO_Update __pyx_string_tab[2117] +#define __pyx_n_u_TA_PVO_Value __pyx_string_tab[2118] +#define __pyx_n_u_TA_PVT __pyx_string_tab[2119] +#define __pyx_n_u_TA_PVT_Clone __pyx_string_tab[2120] +#define __pyx_n_u_TA_PVT_Open __pyx_string_tab[2121] +#define __pyx_n_u_TA_PVT_OpenAndFill __pyx_string_tab[2122] +#define __pyx_n_u_TA_PVT_Peek __pyx_string_tab[2123] +#define __pyx_n_u_TA_PVT_Update __pyx_string_tab[2124] +#define __pyx_n_u_TA_PVT_Value __pyx_string_tab[2125] +#define __pyx_n_u_TA_ParamHolderAlloc __pyx_string_tab[2126] +#define __pyx_n_u_TA_ParamHolderFree __pyx_string_tab[2127] +#define __pyx_n_u_TA_QSTICK __pyx_string_tab[2128] +#define __pyx_n_u_TA_QSTICK_Clone __pyx_string_tab[2129] +#define __pyx_n_u_TA_QSTICK_Open __pyx_string_tab[2130] +#define __pyx_n_u_TA_QSTICK_OpenAndFill __pyx_string_tab[2131] +#define __pyx_n_u_TA_QSTICK_Peek __pyx_string_tab[2132] +#define __pyx_n_u_TA_QSTICK_Update __pyx_string_tab[2133] +#define __pyx_n_u_TA_QSTICK_Value __pyx_string_tab[2134] +#define __pyx_n_u_TA_RMA __pyx_string_tab[2135] +#define __pyx_n_u_TA_RMA_Clone __pyx_string_tab[2136] +#define __pyx_n_u_TA_RMA_Open __pyx_string_tab[2137] +#define __pyx_n_u_TA_RMA_OpenAndFill __pyx_string_tab[2138] +#define __pyx_n_u_TA_RMA_Peek __pyx_string_tab[2139] +#define __pyx_n_u_TA_RMA_Update __pyx_string_tab[2140] +#define __pyx_n_u_TA_RMA_Value __pyx_string_tab[2141] +#define __pyx_n_u_TA_ROC __pyx_string_tab[2142] +#define __pyx_n_u_TA_ROCP __pyx_string_tab[2143] +#define __pyx_n_u_TA_ROCP_Clone __pyx_string_tab[2144] +#define __pyx_n_u_TA_ROCP_Open __pyx_string_tab[2145] +#define __pyx_n_u_TA_ROCP_OpenAndFill __pyx_string_tab[2146] +#define __pyx_n_u_TA_ROCP_Peek __pyx_string_tab[2147] +#define __pyx_n_u_TA_ROCP_Update __pyx_string_tab[2148] +#define __pyx_n_u_TA_ROCP_Value __pyx_string_tab[2149] +#define __pyx_n_u_TA_ROCR __pyx_string_tab[2150] +#define __pyx_n_u_TA_ROCR100 __pyx_string_tab[2151] +#define __pyx_n_u_TA_ROCR100_Clone __pyx_string_tab[2152] +#define __pyx_n_u_TA_ROCR100_Open __pyx_string_tab[2153] +#define __pyx_n_u_TA_ROCR100_OpenAndFill __pyx_string_tab[2154] +#define __pyx_n_u_TA_ROCR100_Peek __pyx_string_tab[2155] +#define __pyx_n_u_TA_ROCR100_Update __pyx_string_tab[2156] +#define __pyx_n_u_TA_ROCR100_Value __pyx_string_tab[2157] +#define __pyx_n_u_TA_ROCR_Clone __pyx_string_tab[2158] +#define __pyx_n_u_TA_ROCR_Open __pyx_string_tab[2159] +#define __pyx_n_u_TA_ROCR_OpenAndFill __pyx_string_tab[2160] +#define __pyx_n_u_TA_ROCR_Peek __pyx_string_tab[2161] +#define __pyx_n_u_TA_ROCR_Update __pyx_string_tab[2162] +#define __pyx_n_u_TA_ROCR_Value __pyx_string_tab[2163] +#define __pyx_n_u_TA_ROC_Clone __pyx_string_tab[2164] +#define __pyx_n_u_TA_ROC_Open __pyx_string_tab[2165] +#define __pyx_n_u_TA_ROC_OpenAndFill __pyx_string_tab[2166] +#define __pyx_n_u_TA_ROC_Peek __pyx_string_tab[2167] +#define __pyx_n_u_TA_ROC_Update __pyx_string_tab[2168] +#define __pyx_n_u_TA_ROC_Value __pyx_string_tab[2169] +#define __pyx_n_u_TA_ROGERSSATCHELL __pyx_string_tab[2170] +#define __pyx_n_u_TA_ROGERSSATCHELL_Clone __pyx_string_tab[2171] +#define __pyx_n_u_TA_ROGERSSATCHELL_Open __pyx_string_tab[2172] +#define __pyx_n_u_TA_ROGERSSATCHELL_OpenAndFill __pyx_string_tab[2173] +#define __pyx_n_u_TA_ROGERSSATCHELL_Peek __pyx_string_tab[2174] +#define __pyx_n_u_TA_ROGERSSATCHELL_Update __pyx_string_tab[2175] +#define __pyx_n_u_TA_ROGERSSATCHELL_Value __pyx_string_tab[2176] +#define __pyx_n_u_TA_RSI __pyx_string_tab[2177] +#define __pyx_n_u_TA_RSI_Clone __pyx_string_tab[2178] +#define __pyx_n_u_TA_RSI_Open __pyx_string_tab[2179] +#define __pyx_n_u_TA_RSI_OpenAndFill __pyx_string_tab[2180] +#define __pyx_n_u_TA_RSI_Peek __pyx_string_tab[2181] +#define __pyx_n_u_TA_RSI_Update __pyx_string_tab[2182] +#define __pyx_n_u_TA_RSI_Value __pyx_string_tab[2183] +#define __pyx_n_u_TA_RVI __pyx_string_tab[2184] +#define __pyx_n_u_TA_RVIR __pyx_string_tab[2185] +#define __pyx_n_u_TA_RVIR_Clone __pyx_string_tab[2186] +#define __pyx_n_u_TA_RVIR_Open __pyx_string_tab[2187] +#define __pyx_n_u_TA_RVIR_OpenAndFill __pyx_string_tab[2188] +#define __pyx_n_u_TA_RVIR_Peek __pyx_string_tab[2189] +#define __pyx_n_u_TA_RVIR_Update __pyx_string_tab[2190] +#define __pyx_n_u_TA_RVIR_Value __pyx_string_tab[2191] +#define __pyx_n_u_TA_RVI_Clone __pyx_string_tab[2192] +#define __pyx_n_u_TA_RVI_Open __pyx_string_tab[2193] +#define __pyx_n_u_TA_RVI_OpenAndFill __pyx_string_tab[2194] +#define __pyx_n_u_TA_RVI_Peek __pyx_string_tab[2195] +#define __pyx_n_u_TA_RVI_Update __pyx_string_tab[2196] +#define __pyx_n_u_TA_RVI_Value __pyx_string_tab[2197] +#define __pyx_n_u_TA_RVOL __pyx_string_tab[2198] +#define __pyx_n_u_TA_RVOL_Clone __pyx_string_tab[2199] +#define __pyx_n_u_TA_RVOL_Open __pyx_string_tab[2200] +#define __pyx_n_u_TA_RVOL_OpenAndFill __pyx_string_tab[2201] +#define __pyx_n_u_TA_RVOL_Peek __pyx_string_tab[2202] +#define __pyx_n_u_TA_RVOL_Update __pyx_string_tab[2203] +#define __pyx_n_u_TA_RVOL_Value __pyx_string_tab[2204] +#define __pyx_n_u_TA_RestoreCandleDefaultSettings __pyx_string_tab[2205] +#define __pyx_n_u_TA_SAR __pyx_string_tab[2206] +#define __pyx_n_u_TA_SAREXT __pyx_string_tab[2207] +#define __pyx_n_u_TA_SAREXT_Clone __pyx_string_tab[2208] +#define __pyx_n_u_TA_SAREXT_Open __pyx_string_tab[2209] +#define __pyx_n_u_TA_SAREXT_OpenAndFill __pyx_string_tab[2210] +#define __pyx_n_u_TA_SAREXT_Peek __pyx_string_tab[2211] +#define __pyx_n_u_TA_SAREXT_Update __pyx_string_tab[2212] +#define __pyx_n_u_TA_SAREXT_Value __pyx_string_tab[2213] +#define __pyx_n_u_TA_SAR_Clone __pyx_string_tab[2214] +#define __pyx_n_u_TA_SAR_Open __pyx_string_tab[2215] +#define __pyx_n_u_TA_SAR_OpenAndFill __pyx_string_tab[2216] +#define __pyx_n_u_TA_SAR_Peek __pyx_string_tab[2217] +#define __pyx_n_u_TA_SAR_Update __pyx_string_tab[2218] +#define __pyx_n_u_TA_SAR_Value __pyx_string_tab[2219] +#define __pyx_n_u_TA_SI __pyx_string_tab[2220] +#define __pyx_n_u_TA_SIN __pyx_string_tab[2221] +#define __pyx_n_u_TA_SINH __pyx_string_tab[2222] +#define __pyx_n_u_TA_SINH_Clone __pyx_string_tab[2223] +#define __pyx_n_u_TA_SINH_Open __pyx_string_tab[2224] +#define __pyx_n_u_TA_SINH_OpenAndFill __pyx_string_tab[2225] +#define __pyx_n_u_TA_SINH_Peek __pyx_string_tab[2226] +#define __pyx_n_u_TA_SINH_Update __pyx_string_tab[2227] +#define __pyx_n_u_TA_SINH_Value __pyx_string_tab[2228] +#define __pyx_n_u_TA_SIN_Clone __pyx_string_tab[2229] +#define __pyx_n_u_TA_SIN_Open __pyx_string_tab[2230] +#define __pyx_n_u_TA_SIN_OpenAndFill __pyx_string_tab[2231] +#define __pyx_n_u_TA_SIN_Peek __pyx_string_tab[2232] +#define __pyx_n_u_TA_SIN_Update __pyx_string_tab[2233] +#define __pyx_n_u_TA_SIN_Value __pyx_string_tab[2234] +#define __pyx_n_u_TA_SI_Clone __pyx_string_tab[2235] +#define __pyx_n_u_TA_SI_Open __pyx_string_tab[2236] +#define __pyx_n_u_TA_SI_OpenAndFill __pyx_string_tab[2237] +#define __pyx_n_u_TA_SI_Peek __pyx_string_tab[2238] +#define __pyx_n_u_TA_SI_Update __pyx_string_tab[2239] +#define __pyx_n_u_TA_SI_Value __pyx_string_tab[2240] +#define __pyx_n_u_TA_SMA __pyx_string_tab[2241] +#define __pyx_n_u_TA_SMA_Clone __pyx_string_tab[2242] +#define __pyx_n_u_TA_SMA_Open __pyx_string_tab[2243] +#define __pyx_n_u_TA_SMA_OpenAndFill __pyx_string_tab[2244] +#define __pyx_n_u_TA_SMA_Peek __pyx_string_tab[2245] +#define __pyx_n_u_TA_SMA_Update __pyx_string_tab[2246] +#define __pyx_n_u_TA_SMA_Value __pyx_string_tab[2247] +#define __pyx_n_u_TA_SMI __pyx_string_tab[2248] +#define __pyx_n_u_TA_SMI_Clone __pyx_string_tab[2249] +#define __pyx_n_u_TA_SMI_Open __pyx_string_tab[2250] +#define __pyx_n_u_TA_SMI_OpenAndFill __pyx_string_tab[2251] +#define __pyx_n_u_TA_SMI_Peek __pyx_string_tab[2252] +#define __pyx_n_u_TA_SMI_Update __pyx_string_tab[2253] +#define __pyx_n_u_TA_SMI_Value __pyx_string_tab[2254] +#define __pyx_n_u_TA_SQRT __pyx_string_tab[2255] +#define __pyx_n_u_TA_SQRT_Clone __pyx_string_tab[2256] +#define __pyx_n_u_TA_SQRT_Open __pyx_string_tab[2257] +#define __pyx_n_u_TA_SQRT_OpenAndFill __pyx_string_tab[2258] +#define __pyx_n_u_TA_SQRT_Peek __pyx_string_tab[2259] +#define __pyx_n_u_TA_SQRT_Update __pyx_string_tab[2260] +#define __pyx_n_u_TA_SQRT_Value __pyx_string_tab[2261] +#define __pyx_n_u_TA_SQZMOM __pyx_string_tab[2262] +#define __pyx_n_u_TA_SQZMOM_Clone __pyx_string_tab[2263] +#define __pyx_n_u_TA_SQZMOM_Open __pyx_string_tab[2264] +#define __pyx_n_u_TA_SQZMOM_OpenAndFill __pyx_string_tab[2265] +#define __pyx_n_u_TA_SQZMOM_Peek __pyx_string_tab[2266] +#define __pyx_n_u_TA_SQZMOM_Update __pyx_string_tab[2267] +#define __pyx_n_u_TA_SQZMOM_Value __pyx_string_tab[2268] +#define __pyx_n_u_TA_STC __pyx_string_tab[2269] +#define __pyx_n_u_TA_STC_Clone __pyx_string_tab[2270] +#define __pyx_n_u_TA_STC_Open __pyx_string_tab[2271] +#define __pyx_n_u_TA_STC_OpenAndFill __pyx_string_tab[2272] +#define __pyx_n_u_TA_STC_Peek __pyx_string_tab[2273] +#define __pyx_n_u_TA_STC_Update __pyx_string_tab[2274] +#define __pyx_n_u_TA_STC_Value __pyx_string_tab[2275] +#define __pyx_n_u_TA_STDDEV __pyx_string_tab[2276] +#define __pyx_n_u_TA_STDDEV_Clone __pyx_string_tab[2277] +#define __pyx_n_u_TA_STDDEV_Open __pyx_string_tab[2278] +#define __pyx_n_u_TA_STDDEV_OpenAndFill __pyx_string_tab[2279] +#define __pyx_n_u_TA_STDDEV_Peek __pyx_string_tab[2280] +#define __pyx_n_u_TA_STDDEV_Update __pyx_string_tab[2281] +#define __pyx_n_u_TA_STDDEV_Value __pyx_string_tab[2282] +#define __pyx_n_u_TA_STOCH __pyx_string_tab[2283] +#define __pyx_n_u_TA_STOCHF __pyx_string_tab[2284] +#define __pyx_n_u_TA_STOCHF_Clone __pyx_string_tab[2285] +#define __pyx_n_u_TA_STOCHF_Open __pyx_string_tab[2286] +#define __pyx_n_u_TA_STOCHF_OpenAndFill __pyx_string_tab[2287] +#define __pyx_n_u_TA_STOCHF_Peek __pyx_string_tab[2288] +#define __pyx_n_u_TA_STOCHF_Update __pyx_string_tab[2289] +#define __pyx_n_u_TA_STOCHF_Value __pyx_string_tab[2290] +#define __pyx_n_u_TA_STOCHRSI __pyx_string_tab[2291] +#define __pyx_n_u_TA_STOCHRSI_Clone __pyx_string_tab[2292] +#define __pyx_n_u_TA_STOCHRSI_Open __pyx_string_tab[2293] +#define __pyx_n_u_TA_STOCHRSI_OpenAndFill __pyx_string_tab[2294] +#define __pyx_n_u_TA_STOCHRSI_Peek __pyx_string_tab[2295] +#define __pyx_n_u_TA_STOCHRSI_Update __pyx_string_tab[2296] +#define __pyx_n_u_TA_STOCHRSI_Value __pyx_string_tab[2297] +#define __pyx_n_u_TA_STOCH_Clone __pyx_string_tab[2298] +#define __pyx_n_u_TA_STOCH_Open __pyx_string_tab[2299] +#define __pyx_n_u_TA_STOCH_OpenAndFill __pyx_string_tab[2300] +#define __pyx_n_u_TA_STOCH_Peek __pyx_string_tab[2301] +#define __pyx_n_u_TA_STOCH_Update __pyx_string_tab[2302] +#define __pyx_n_u_TA_STOCH_Value __pyx_string_tab[2303] +#define __pyx_n_u_TA_SUB __pyx_string_tab[2304] +#define __pyx_n_u_TA_SUB_Clone __pyx_string_tab[2305] +#define __pyx_n_u_TA_SUB_Open __pyx_string_tab[2306] +#define __pyx_n_u_TA_SUB_OpenAndFill __pyx_string_tab[2307] +#define __pyx_n_u_TA_SUB_Peek __pyx_string_tab[2308] +#define __pyx_n_u_TA_SUB_Update __pyx_string_tab[2309] +#define __pyx_n_u_TA_SUB_Value __pyx_string_tab[2310] +#define __pyx_n_u_TA_SUM __pyx_string_tab[2311] +#define __pyx_n_u_TA_SUM_Clone __pyx_string_tab[2312] +#define __pyx_n_u_TA_SUM_Open __pyx_string_tab[2313] +#define __pyx_n_u_TA_SUM_OpenAndFill __pyx_string_tab[2314] +#define __pyx_n_u_TA_SUM_Peek __pyx_string_tab[2315] +#define __pyx_n_u_TA_SUM_Update __pyx_string_tab[2316] +#define __pyx_n_u_TA_SUM_Value __pyx_string_tab[2317] +#define __pyx_n_u_TA_SUPERTREND __pyx_string_tab[2318] +#define __pyx_n_u_TA_SUPERTREND_Clone __pyx_string_tab[2319] +#define __pyx_n_u_TA_SUPERTREND_Open __pyx_string_tab[2320] +#define __pyx_n_u_TA_SUPERTREND_OpenAndFill __pyx_string_tab[2321] +#define __pyx_n_u_TA_SUPERTREND_Peek __pyx_string_tab[2322] +#define __pyx_n_u_TA_SUPERTREND_Update __pyx_string_tab[2323] +#define __pyx_n_u_TA_SUPERTREND_Value __pyx_string_tab[2324] +#define __pyx_n_u_TA_SWAK_2PHP __pyx_string_tab[2325] +#define __pyx_n_u_TA_SWAK_2PHP_Clone __pyx_string_tab[2326] +#define __pyx_n_u_TA_SWAK_2PHP_Open __pyx_string_tab[2327] +#define __pyx_n_u_TA_SWAK_2PHP_OpenAndFill __pyx_string_tab[2328] +#define __pyx_n_u_TA_SWAK_2PHP_Peek __pyx_string_tab[2329] +#define __pyx_n_u_TA_SWAK_2PHP_Update __pyx_string_tab[2330] +#define __pyx_n_u_TA_SWAK_2PHP_Value __pyx_string_tab[2331] +#define __pyx_n_u_TA_SWAK_BP __pyx_string_tab[2332] +#define __pyx_n_u_TA_SWAK_BP_Clone __pyx_string_tab[2333] +#define __pyx_n_u_TA_SWAK_BP_Open __pyx_string_tab[2334] +#define __pyx_n_u_TA_SWAK_BP_OpenAndFill __pyx_string_tab[2335] +#define __pyx_n_u_TA_SWAK_BP_Peek __pyx_string_tab[2336] +#define __pyx_n_u_TA_SWAK_BP_Update __pyx_string_tab[2337] +#define __pyx_n_u_TA_SWAK_BP_Value __pyx_string_tab[2338] +#define __pyx_n_u_TA_SWAK_BUTTER __pyx_string_tab[2339] +#define __pyx_n_u_TA_SWAK_BUTTER_Clone __pyx_string_tab[2340] +#define __pyx_n_u_TA_SWAK_BUTTER_Open __pyx_string_tab[2341] +#define __pyx_n_u_TA_SWAK_BUTTER_OpenAndFill __pyx_string_tab[2342] +#define __pyx_n_u_TA_SWAK_BUTTER_Peek __pyx_string_tab[2343] +#define __pyx_n_u_TA_SWAK_BUTTER_Update __pyx_string_tab[2344] +#define __pyx_n_u_TA_SWAK_BUTTER_Value __pyx_string_tab[2345] +#define __pyx_n_u_TA_SWAK_GAUSS __pyx_string_tab[2346] +#define __pyx_n_u_TA_SWAK_GAUSS_Clone __pyx_string_tab[2347] +#define __pyx_n_u_TA_SWAK_GAUSS_Open __pyx_string_tab[2348] +#define __pyx_n_u_TA_SWAK_GAUSS_OpenAndFill __pyx_string_tab[2349] +#define __pyx_n_u_TA_SWAK_GAUSS_Peek __pyx_string_tab[2350] +#define __pyx_n_u_TA_SWAK_GAUSS_Update __pyx_string_tab[2351] +#define __pyx_n_u_TA_SWAK_GAUSS_Value __pyx_string_tab[2352] +#define __pyx_n_u_TA_SWAK_HP __pyx_string_tab[2353] +#define __pyx_n_u_TA_SWAK_HP_Clone __pyx_string_tab[2354] +#define __pyx_n_u_TA_SWAK_HP_Open __pyx_string_tab[2355] +#define __pyx_n_u_TA_SWAK_HP_OpenAndFill __pyx_string_tab[2356] +#define __pyx_n_u_TA_SWAK_HP_Peek __pyx_string_tab[2357] +#define __pyx_n_u_TA_SWAK_HP_Update __pyx_string_tab[2358] +#define __pyx_n_u_TA_SWAK_HP_Value __pyx_string_tab[2359] +#define __pyx_n_u_TA_SetCandleSettings __pyx_string_tab[2360] +#define __pyx_n_u_TA_SetCompatibility __pyx_string_tab[2361] +#define __pyx_n_u_TA_SetOptInputParamInteger __pyx_string_tab[2362] +#define __pyx_n_u_TA_SetOptInputParamReal __pyx_string_tab[2363] +#define __pyx_n_u_TA_SetUnstablePeriod __pyx_string_tab[2364] +#define __pyx_n_u_TA_Shutdown __pyx_string_tab[2365] +#define __pyx_n_u_TA_T3 __pyx_string_tab[2366] +#define __pyx_n_u_TA_T3_Clone __pyx_string_tab[2367] +#define __pyx_n_u_TA_T3_Open __pyx_string_tab[2368] +#define __pyx_n_u_TA_T3_OpenAndFill __pyx_string_tab[2369] +#define __pyx_n_u_TA_T3_Peek __pyx_string_tab[2370] +#define __pyx_n_u_TA_T3_Update __pyx_string_tab[2371] +#define __pyx_n_u_TA_T3_Value __pyx_string_tab[2372] +#define __pyx_n_u_TA_TAN __pyx_string_tab[2373] +#define __pyx_n_u_TA_TANH __pyx_string_tab[2374] +#define __pyx_n_u_TA_TANH_Clone __pyx_string_tab[2375] +#define __pyx_n_u_TA_TANH_Open __pyx_string_tab[2376] +#define __pyx_n_u_TA_TANH_OpenAndFill __pyx_string_tab[2377] +#define __pyx_n_u_TA_TANH_Peek __pyx_string_tab[2378] +#define __pyx_n_u_TA_TANH_Update __pyx_string_tab[2379] +#define __pyx_n_u_TA_TANH_Value __pyx_string_tab[2380] +#define __pyx_n_u_TA_TAN_Clone __pyx_string_tab[2381] +#define __pyx_n_u_TA_TAN_Open __pyx_string_tab[2382] +#define __pyx_n_u_TA_TAN_OpenAndFill __pyx_string_tab[2383] +#define __pyx_n_u_TA_TAN_Peek __pyx_string_tab[2384] +#define __pyx_n_u_TA_TAN_Update __pyx_string_tab[2385] +#define __pyx_n_u_TA_TAN_Value __pyx_string_tab[2386] +#define __pyx_n_u_TA_TEMA __pyx_string_tab[2387] +#define __pyx_n_u_TA_TEMA_Clone __pyx_string_tab[2388] +#define __pyx_n_u_TA_TEMA_Open __pyx_string_tab[2389] +#define __pyx_n_u_TA_TEMA_OpenAndFill __pyx_string_tab[2390] +#define __pyx_n_u_TA_TEMA_Peek __pyx_string_tab[2391] +#define __pyx_n_u_TA_TEMA_Update __pyx_string_tab[2392] +#define __pyx_n_u_TA_TEMA_Value __pyx_string_tab[2393] +#define __pyx_n_u_TA_TRANGE __pyx_string_tab[2394] +#define __pyx_n_u_TA_TRANGE_Clone __pyx_string_tab[2395] +#define __pyx_n_u_TA_TRANGE_Open __pyx_string_tab[2396] +#define __pyx_n_u_TA_TRANGE_OpenAndFill __pyx_string_tab[2397] +#define __pyx_n_u_TA_TRANGE_Peek __pyx_string_tab[2398] +#define __pyx_n_u_TA_TRANGE_Update __pyx_string_tab[2399] +#define __pyx_n_u_TA_TRANGE_Value __pyx_string_tab[2400] +#define __pyx_n_u_TA_TRIMA __pyx_string_tab[2401] +#define __pyx_n_u_TA_TRIMA_Clone __pyx_string_tab[2402] +#define __pyx_n_u_TA_TRIMA_Open __pyx_string_tab[2403] +#define __pyx_n_u_TA_TRIMA_OpenAndFill __pyx_string_tab[2404] +#define __pyx_n_u_TA_TRIMA_Peek __pyx_string_tab[2405] +#define __pyx_n_u_TA_TRIMA_Update __pyx_string_tab[2406] +#define __pyx_n_u_TA_TRIMA_Value __pyx_string_tab[2407] +#define __pyx_n_u_TA_TRIX __pyx_string_tab[2408] +#define __pyx_n_u_TA_TRIX_Clone __pyx_string_tab[2409] +#define __pyx_n_u_TA_TRIX_Open __pyx_string_tab[2410] +#define __pyx_n_u_TA_TRIX_OpenAndFill __pyx_string_tab[2411] +#define __pyx_n_u_TA_TRIX_Peek __pyx_string_tab[2412] +#define __pyx_n_u_TA_TRIX_Update __pyx_string_tab[2413] +#define __pyx_n_u_TA_TRIX_Value __pyx_string_tab[2414] +#define __pyx_n_u_TA_TSF __pyx_string_tab[2415] +#define __pyx_n_u_TA_TSF_Clone __pyx_string_tab[2416] +#define __pyx_n_u_TA_TSF_Open __pyx_string_tab[2417] +#define __pyx_n_u_TA_TSF_OpenAndFill __pyx_string_tab[2418] +#define __pyx_n_u_TA_TSF_Peek __pyx_string_tab[2419] +#define __pyx_n_u_TA_TSF_Update __pyx_string_tab[2420] +#define __pyx_n_u_TA_TSF_Value __pyx_string_tab[2421] +#define __pyx_n_u_TA_TSI __pyx_string_tab[2422] +#define __pyx_n_u_TA_TSI_Clone __pyx_string_tab[2423] +#define __pyx_n_u_TA_TSI_Open __pyx_string_tab[2424] +#define __pyx_n_u_TA_TSI_OpenAndFill __pyx_string_tab[2425] +#define __pyx_n_u_TA_TSI_Peek __pyx_string_tab[2426] +#define __pyx_n_u_TA_TSI_Update __pyx_string_tab[2427] +#define __pyx_n_u_TA_TSI_Value __pyx_string_tab[2428] +#define __pyx_n_u_TA_TYPPRICE __pyx_string_tab[2429] +#define __pyx_n_u_TA_TYPPRICE_Clone __pyx_string_tab[2430] +#define __pyx_n_u_TA_TYPPRICE_Open __pyx_string_tab[2431] +#define __pyx_n_u_TA_TYPPRICE_OpenAndFill __pyx_string_tab[2432] +#define __pyx_n_u_TA_TYPPRICE_Peek __pyx_string_tab[2433] +#define __pyx_n_u_TA_TYPPRICE_Update __pyx_string_tab[2434] +#define __pyx_n_u_TA_TYPPRICE_Value __pyx_string_tab[2435] +#define __pyx_n_u_TA_ULTOSC __pyx_string_tab[2436] +#define __pyx_n_u_TA_ULTOSC_Clone __pyx_string_tab[2437] +#define __pyx_n_u_TA_ULTOSC_Open __pyx_string_tab[2438] +#define __pyx_n_u_TA_ULTOSC_OpenAndFill __pyx_string_tab[2439] +#define __pyx_n_u_TA_ULTOSC_Peek __pyx_string_tab[2440] +#define __pyx_n_u_TA_ULTOSC_Update __pyx_string_tab[2441] +#define __pyx_n_u_TA_ULTOSC_Value __pyx_string_tab[2442] +#define __pyx_n_u_TA_VAR __pyx_string_tab[2443] +#define __pyx_n_u_TA_VAR_Clone __pyx_string_tab[2444] +#define __pyx_n_u_TA_VAR_Open __pyx_string_tab[2445] +#define __pyx_n_u_TA_VAR_OpenAndFill __pyx_string_tab[2446] +#define __pyx_n_u_TA_VAR_Peek __pyx_string_tab[2447] +#define __pyx_n_u_TA_VAR_Update __pyx_string_tab[2448] +#define __pyx_n_u_TA_VAR_Value __pyx_string_tab[2449] +#define __pyx_n_u_TA_VHF __pyx_string_tab[2450] +#define __pyx_n_u_TA_VHF_Clone __pyx_string_tab[2451] +#define __pyx_n_u_TA_VHF_Open __pyx_string_tab[2452] +#define __pyx_n_u_TA_VHF_OpenAndFill __pyx_string_tab[2453] +#define __pyx_n_u_TA_VHF_Peek __pyx_string_tab[2454] +#define __pyx_n_u_TA_VHF_Update __pyx_string_tab[2455] +#define __pyx_n_u_TA_VHF_Value __pyx_string_tab[2456] +#define __pyx_n_u_TA_VIDYA __pyx_string_tab[2457] +#define __pyx_n_u_TA_VIDYA_Clone __pyx_string_tab[2458] +#define __pyx_n_u_TA_VIDYA_Open __pyx_string_tab[2459] +#define __pyx_n_u_TA_VIDYA_OpenAndFill __pyx_string_tab[2460] +#define __pyx_n_u_TA_VIDYA_Peek __pyx_string_tab[2461] +#define __pyx_n_u_TA_VIDYA_Update __pyx_string_tab[2462] +#define __pyx_n_u_TA_VIDYA_Value __pyx_string_tab[2463] +#define __pyx_n_u_TA_VORTEX __pyx_string_tab[2464] +#define __pyx_n_u_TA_VORTEX_Clone __pyx_string_tab[2465] +#define __pyx_n_u_TA_VORTEX_Open __pyx_string_tab[2466] +#define __pyx_n_u_TA_VORTEX_OpenAndFill __pyx_string_tab[2467] +#define __pyx_n_u_TA_VORTEX_Peek __pyx_string_tab[2468] +#define __pyx_n_u_TA_VORTEX_Update __pyx_string_tab[2469] +#define __pyx_n_u_TA_VORTEX_Value __pyx_string_tab[2470] +#define __pyx_n_u_TA_VWAP __pyx_string_tab[2471] +#define __pyx_n_u_TA_VWAP_Clone __pyx_string_tab[2472] +#define __pyx_n_u_TA_VWAP_Open __pyx_string_tab[2473] +#define __pyx_n_u_TA_VWAP_OpenAndFill __pyx_string_tab[2474] +#define __pyx_n_u_TA_VWAP_Peek __pyx_string_tab[2475] +#define __pyx_n_u_TA_VWAP_Update __pyx_string_tab[2476] +#define __pyx_n_u_TA_VWAP_Value __pyx_string_tab[2477] +#define __pyx_n_u_TA_VWMA __pyx_string_tab[2478] +#define __pyx_n_u_TA_VWMA_Clone __pyx_string_tab[2479] +#define __pyx_n_u_TA_VWMA_Open __pyx_string_tab[2480] +#define __pyx_n_u_TA_VWMA_OpenAndFill __pyx_string_tab[2481] +#define __pyx_n_u_TA_VWMA_Peek __pyx_string_tab[2482] +#define __pyx_n_u_TA_VWMA_Update __pyx_string_tab[2483] +#define __pyx_n_u_TA_VWMA_Value __pyx_string_tab[2484] +#define __pyx_n_u_TA_WAD __pyx_string_tab[2485] +#define __pyx_n_u_TA_WAD_Clone __pyx_string_tab[2486] +#define __pyx_n_u_TA_WAD_Open __pyx_string_tab[2487] +#define __pyx_n_u_TA_WAD_OpenAndFill __pyx_string_tab[2488] +#define __pyx_n_u_TA_WAD_Peek __pyx_string_tab[2489] +#define __pyx_n_u_TA_WAD_Update __pyx_string_tab[2490] +#define __pyx_n_u_TA_WAD_Value __pyx_string_tab[2491] +#define __pyx_n_u_TA_WAVETREND __pyx_string_tab[2492] +#define __pyx_n_u_TA_WAVETREND_Clone __pyx_string_tab[2493] +#define __pyx_n_u_TA_WAVETREND_Open __pyx_string_tab[2494] +#define __pyx_n_u_TA_WAVETREND_OpenAndFill __pyx_string_tab[2495] +#define __pyx_n_u_TA_WAVETREND_Peek __pyx_string_tab[2496] +#define __pyx_n_u_TA_WAVETREND_Update __pyx_string_tab[2497] +#define __pyx_n_u_TA_WAVETREND_Value __pyx_string_tab[2498] +#define __pyx_n_u_TA_WCLPRICE __pyx_string_tab[2499] +#define __pyx_n_u_TA_WCLPRICE_Clone __pyx_string_tab[2500] +#define __pyx_n_u_TA_WCLPRICE_Open __pyx_string_tab[2501] +#define __pyx_n_u_TA_WCLPRICE_OpenAndFill __pyx_string_tab[2502] +#define __pyx_n_u_TA_WCLPRICE_Peek __pyx_string_tab[2503] +#define __pyx_n_u_TA_WCLPRICE_Update __pyx_string_tab[2504] +#define __pyx_n_u_TA_WCLPRICE_Value __pyx_string_tab[2505] +#define __pyx_n_u_TA_WILLR __pyx_string_tab[2506] +#define __pyx_n_u_TA_WILLR_Clone __pyx_string_tab[2507] +#define __pyx_n_u_TA_WILLR_Open __pyx_string_tab[2508] +#define __pyx_n_u_TA_WILLR_OpenAndFill __pyx_string_tab[2509] +#define __pyx_n_u_TA_WILLR_Peek __pyx_string_tab[2510] +#define __pyx_n_u_TA_WILLR_Update __pyx_string_tab[2511] +#define __pyx_n_u_TA_WILLR_Value __pyx_string_tab[2512] +#define __pyx_n_u_TA_WMA __pyx_string_tab[2513] +#define __pyx_n_u_TA_WMA_Clone __pyx_string_tab[2514] +#define __pyx_n_u_TA_WMA_Open __pyx_string_tab[2515] +#define __pyx_n_u_TA_WMA_OpenAndFill __pyx_string_tab[2516] +#define __pyx_n_u_TA_WMA_Peek __pyx_string_tab[2517] +#define __pyx_n_u_TA_WMA_Update __pyx_string_tab[2518] +#define __pyx_n_u_TA_WMA_Value __pyx_string_tab[2519] +#define __pyx_n_u_TA_ZIGZAG __pyx_string_tab[2520] +#define __pyx_n_u_TA_ZIGZAG_Clone __pyx_string_tab[2521] +#define __pyx_n_u_TA_ZIGZAG_Open __pyx_string_tab[2522] +#define __pyx_n_u_TA_ZIGZAG_OpenAndFill __pyx_string_tab[2523] +#define __pyx_n_u_TA_ZIGZAG_Peek __pyx_string_tab[2524] +#define __pyx_n_u_TA_ZIGZAG_Update __pyx_string_tab[2525] +#define __pyx_n_u_TA_ZIGZAG_Value __pyx_string_tab[2526] +#define __pyx_n_u_TA_ZLEMA __pyx_string_tab[2527] +#define __pyx_n_u_TA_ZLEMA_Clone __pyx_string_tab[2528] +#define __pyx_n_u_TA_ZLEMA_Open __pyx_string_tab[2529] +#define __pyx_n_u_TA_ZLEMA_OpenAndFill __pyx_string_tab[2530] +#define __pyx_n_u_TA_ZLEMA_Peek __pyx_string_tab[2531] +#define __pyx_n_u_TA_ZLEMA_Update __pyx_string_tab[2532] +#define __pyx_n_u_TA_ZLEMA_Value __pyx_string_tab[2533] +#define __pyx_n_u_TEMA __pyx_string_tab[2534] +#define __pyx_n_u_TEMA_Stream __pyx_string_tab[2535] +#define __pyx_n_u_TEMA_Stream_open_and_fill __pyx_string_tab[2536] +#define __pyx_n_u_TRANGE __pyx_string_tab[2537] +#define __pyx_n_u_TRANGE_Stream __pyx_string_tab[2538] +#define __pyx_n_u_TRANGE_Stream_open_and_fill __pyx_string_tab[2539] +#define __pyx_n_u_TRIMA __pyx_string_tab[2540] +#define __pyx_n_u_TRIMA_Stream __pyx_string_tab[2541] +#define __pyx_n_u_TRIMA_Stream_open_and_fill __pyx_string_tab[2542] +#define __pyx_n_u_TRIX __pyx_string_tab[2543] +#define __pyx_n_u_TRIX_Stream __pyx_string_tab[2544] +#define __pyx_n_u_TRIX_Stream_open_and_fill __pyx_string_tab[2545] +#define __pyx_n_u_TSF __pyx_string_tab[2546] +#define __pyx_n_u_TSF_Stream __pyx_string_tab[2547] +#define __pyx_n_u_TSF_Stream_open_and_fill __pyx_string_tab[2548] +#define __pyx_n_u_TSI __pyx_string_tab[2549] +#define __pyx_n_u_TSI_Stream __pyx_string_tab[2550] +#define __pyx_n_u_TSI_Stream_open_and_fill __pyx_string_tab[2551] +#define __pyx_n_u_TYPPRICE __pyx_string_tab[2552] +#define __pyx_n_u_TYPPRICE_Stream __pyx_string_tab[2553] +#define __pyx_n_u_TYPPRICE_Stream_open_and_fill __pyx_string_tab[2554] +#define __pyx_n_u_ULTOSC __pyx_string_tab[2555] +#define __pyx_n_u_ULTOSC_Stream __pyx_string_tab[2556] +#define __pyx_n_u_ULTOSC_Stream_open_and_fill __pyx_string_tab[2557] +#define __pyx_n_u_UNSTABLE_AUTO_PREC_4 __pyx_string_tab[2558] +#define __pyx_n_u_UNSTABLE_AUTO_PREC_8 __pyx_string_tab[2559] +#define __pyx_n_u_VAR __pyx_string_tab[2560] +#define __pyx_n_u_VAR_Stream __pyx_string_tab[2561] +#define __pyx_n_u_VAR_Stream_open_and_fill __pyx_string_tab[2562] +#define __pyx_n_u_VHF __pyx_string_tab[2563] +#define __pyx_n_u_VHF_Stream __pyx_string_tab[2564] +#define __pyx_n_u_VHF_Stream_open_and_fill __pyx_string_tab[2565] +#define __pyx_n_u_VIDYA __pyx_string_tab[2566] +#define __pyx_n_u_VIDYA_Stream __pyx_string_tab[2567] +#define __pyx_n_u_VIDYA_Stream_open_and_fill __pyx_string_tab[2568] +#define __pyx_n_u_VORTEX __pyx_string_tab[2569] +#define __pyx_n_u_VORTEX_Stream __pyx_string_tab[2570] +#define __pyx_n_u_VORTEX_Stream_open_and_fill __pyx_string_tab[2571] +#define __pyx_n_u_VWAP __pyx_string_tab[2572] +#define __pyx_n_u_VWAP_Stream __pyx_string_tab[2573] +#define __pyx_n_u_VWAP_Stream_open_and_fill __pyx_string_tab[2574] +#define __pyx_n_u_VWMA __pyx_string_tab[2575] +#define __pyx_n_u_VWMA_Stream __pyx_string_tab[2576] +#define __pyx_n_u_VWMA_Stream_open_and_fill __pyx_string_tab[2577] +#define __pyx_n_u_WAD __pyx_string_tab[2578] +#define __pyx_n_u_WAD_Stream __pyx_string_tab[2579] +#define __pyx_n_u_WAD_Stream_open_and_fill __pyx_string_tab[2580] +#define __pyx_n_u_WAVETREND __pyx_string_tab[2581] +#define __pyx_n_u_WAVETREND_Stream __pyx_string_tab[2582] +#define __pyx_n_u_WAVETREND_Stream_open_and_fill __pyx_string_tab[2583] +#define __pyx_n_u_WCLPRICE __pyx_string_tab[2584] +#define __pyx_n_u_WCLPRICE_Stream __pyx_string_tab[2585] +#define __pyx_n_u_WCLPRICE_Stream_open_and_fill __pyx_string_tab[2586] +#define __pyx_n_u_WILLR __pyx_string_tab[2587] +#define __pyx_n_u_WILLR_Stream __pyx_string_tab[2588] +#define __pyx_n_u_WILLR_Stream_open_and_fill __pyx_string_tab[2589] +#define __pyx_n_u_WMA __pyx_string_tab[2590] +#define __pyx_n_u_WMA_Stream __pyx_string_tab[2591] +#define __pyx_n_u_WMA_Stream_open_and_fill __pyx_string_tab[2592] +#define __pyx_n_u_ZIGZAG __pyx_string_tab[2593] +#define __pyx_n_u_ZIGZAG_Stream __pyx_string_tab[2594] +#define __pyx_n_u_ZIGZAG_Stream_open_and_fill __pyx_string_tab[2595] +#define __pyx_n_u_ZLEMA __pyx_string_tab[2596] +#define __pyx_n_u_ZLEMA_Stream __pyx_string_tab[2597] +#define __pyx_n_u_ZLEMA_Stream_open_and_fill __pyx_string_tab[2598] +#define __pyx_n_u_ARRAY_TYPES __pyx_string_tab[2599] +#define __pyx_n_u_Function__call_function __pyx_string_tab[2600] +#define __pyx_n_u_Function__get_opt_input_value __pyx_string_tab[2601] +#define __pyx_n_u_Function__input_price_series_na __pyx_string_tab[2602] +#define __pyx_n_u_Function__local __pyx_string_tab[2603] +#define __pyx_n_u_Function__localdata __pyx_string_tab[2604] +#define __pyx_n_u_Function__name __pyx_string_tab[2605] +#define __pyx_n_u_Function__namestr __pyx_string_tab[2606] +#define __pyx_n_u_Function__opt_input_value __pyx_string_tab[2607] +#define __pyx_n_u_INPUT_ARRAYS_TYPES __pyx_string_tab[2608] +#define __pyx_n_u_INPUT_PRICE_SERIES_DEFAULTS __pyx_string_tab[2609] +#define __pyx_n_u_PANDAS_DATAFRAME __pyx_string_tab[2610] +#define __pyx_n_u_PANDAS_SERIES __pyx_string_tab[2611] +#define __pyx_n_u_POLARS_DATAFRAME __pyx_string_tab[2612] +#define __pyx_n_u_POLARS_SERIES __pyx_string_tab[2613] +#define __pyx_n_u_TA_ReadLease __pyx_string_tab[2614] +#define __pyx_n_u_TA_ReadLease___enter __pyx_string_tab[2615] +#define __pyx_n_u_TA_ReadLease___exit __pyx_string_tab[2616] +#define __pyx_n_u_TA_ReadLease___reduce_cython __pyx_string_tab[2617] +#define __pyx_n_u_TA_ReadLease___setstate_cython __pyx_string_tab[2618] +#define __pyx_n_u_TA_WriteLease __pyx_string_tab[2619] +#define __pyx_n_u_TA_WriteLease___enter __pyx_string_tab[2620] +#define __pyx_n_u_TA_WriteLease___exit __pyx_string_tab[2621] +#define __pyx_n_u_TA_WriteLease___reduce_cython __pyx_string_tab[2622] +#define __pyx_n_u_TA_WriteLease___setstate_cython __pyx_string_tab[2623] +#define __pyx_n_u_Pyx_PyDict_NextRef __pyx_string_tab[2624] +#define __pyx_n_u_TA_FUNCTION_NAMES __pyx_string_tab[2625] +#define __pyx_n_u_all __pyx_string_tab[2626] +#define __pyx_n_u_annotate __pyx_string_tab[2627] +#define __pyx_n_u_call __pyx_string_tab[2628] +#define __pyx_n_u_call_function __pyx_string_tab[2629] +#define __pyx_n_u_class_getitem __pyx_string_tab[2630] +#define __pyx_n_u_copy_2 __pyx_string_tab[2631] +#define __pyx_n_u_deepcopy __pyx_string_tab[2632] +#define __pyx_n_u_dict __pyx_string_tab[2633] +#define __pyx_n_u_doc __pyx_string_tab[2634] +#define __pyx_n_u_enter __pyx_string_tab[2635] +#define __pyx_n_u_exit __pyx_string_tab[2636] +#define __pyx_n_u_func __pyx_string_tab[2637] +#define __pyx_n_u_get_flags __pyx_string_tab[2638] +#define __pyx_n_u_get_opt_input_value __pyx_string_tab[2639] +#define __pyx_n_u_getitem __pyx_string_tab[2640] +#define __pyx_n_u_getstate __pyx_string_tab[2641] +#define __pyx_n_u_init __pyx_string_tab[2642] +#define __pyx_n_u_input_price_series_names_2 __pyx_string_tab[2643] +#define __pyx_n_u_local_2 __pyx_string_tab[2644] +#define __pyx_n_u_main __pyx_string_tab[2645] +#define __pyx_n_u_metaclass __pyx_string_tab[2646] +#define __pyx_n_u_module __pyx_string_tab[2647] +#define __pyx_n_u_mro_entries __pyx_string_tab[2648] +#define __pyx_n_u_name_2 __pyx_string_tab[2649] +#define __pyx_n_u_new __pyx_string_tab[2650] +#define __pyx_n_u_opt_input_value __pyx_string_tab[2651] +#define __pyx_n_u_prepare __pyx_string_tab[2652] +#define __pyx_n_u_pyx_checksum __pyx_string_tab[2653] +#define __pyx_n_u_pyx_result __pyx_string_tab[2654] +#define __pyx_n_u_pyx_state __pyx_string_tab[2655] +#define __pyx_n_u_pyx_type __pyx_string_tab[2656] +#define __pyx_n_u_pyx_unpickle__TA_ReadLease __pyx_string_tab[2657] +#define __pyx_n_u_pyx_unpickle__TA_WriteLease __pyx_string_tab[2658] +#define __pyx_n_u_pyx_vtable __pyx_string_tab[2659] +#define __pyx_n_u_qualname __pyx_string_tab[2660] +#define __pyx_n_u_reduce __pyx_string_tab[2661] +#define __pyx_n_u_reduce_cython __pyx_string_tab[2662] +#define __pyx_n_u_reduce_ex __pyx_string_tab[2663] +#define __pyx_n_u_repr __pyx_string_tab[2664] +#define __pyx_n_u_set_name __pyx_string_tab[2665] +#define __pyx_n_u_setstate __pyx_string_tab[2666] +#define __pyx_n_u_setstate_cython __pyx_string_tab[2667] +#define __pyx_n_u_str __pyx_string_tab[2668] +#define __pyx_n_u_ta_version __pyx_string_tab[2669] +#define __pyx_n_u_test __pyx_string_tab[2670] +#define __pyx_n_u_unicode __pyx_string_tab[2671] +#define __pyx_n_u_dict_2 __pyx_string_tab[2672] +#define __pyx_n_u_get_defaults_and_docs __pyx_string_tab[2673] +#define __pyx_n_u_is_coroutine __pyx_string_tab[2674] +#define __pyx_n_u_lookup __pyx_string_tab[2675] +#define __pyx_n_u_ta_check_success __pyx_string_tab[2676] +#define __pyx_n_u_ta_func_unst_id __pyx_string_tab[2677] +#define __pyx_n_u_ta_func_unst_ids __pyx_string_tab[2678] +#define __pyx_n_u_ta_func_unst_retired __pyx_string_tab[2679] +#define __pyx_n_u_ta_getFuncInfo __pyx_string_tab[2680] +#define __pyx_n_u_ta_getFuncTable __pyx_string_tab[2681] +#define __pyx_n_u_ta_getGroupTable __pyx_string_tab[2682] +#define __pyx_n_u_ta_getInputParameterInfo __pyx_string_tab[2683] +#define __pyx_n_u_ta_getOptInputParameterInfo __pyx_string_tab[2684] +#define __pyx_n_u_ta_getOutputParameterInfo __pyx_string_tab[2685] +#define __pyx_n_u_ta_get_compatibility __pyx_string_tab[2686] +#define __pyx_n_u_ta_get_runtime_info __pyx_string_tab[2687] +#define __pyx_n_u_ta_get_unstable_period __pyx_string_tab[2688] +#define __pyx_n_u_ta_initialize __pyx_string_tab[2689] +#define __pyx_n_u_ta_restore_candle_default_setti __pyx_string_tab[2690] +#define __pyx_n_u_ta_set_candle_settings __pyx_string_tab[2691] +#define __pyx_n_u_ta_set_compatibility __pyx_string_tab[2692] +#define __pyx_n_u_ta_set_unstable_period __pyx_string_tab[2693] +#define __pyx_n_u_ta_shutdown __pyx_string_tab[2694] +#define __pyx_n_u_a_close __pyx_string_tab[2695] +#define __pyx_n_u_a_high __pyx_string_tab[2696] +#define __pyx_n_u_a_low __pyx_string_tab[2697] +#define __pyx_n_u_a_open __pyx_string_tab[2698] +#define __pyx_n_u_a_periods __pyx_string_tab[2699] +#define __pyx_n_u_a_real __pyx_string_tab[2700] +#define __pyx_n_u_a_real0 __pyx_string_tab[2701] +#define __pyx_n_u_a_real1 __pyx_string_tab[2702] +#define __pyx_n_u_a_volume __pyx_string_tab[2703] +#define __pyx_n_u_acceleration __pyx_string_tab[2704] +#define __pyx_n_u_accelerationinitlong __pyx_string_tab[2705] +#define __pyx_n_u_accelerationinitshort __pyx_string_tab[2706] +#define __pyx_n_u_accelerationlong __pyx_string_tab[2707] +#define __pyx_n_u_accelerationmaxlong __pyx_string_tab[2708] +#define __pyx_n_u_accelerationmaxshort __pyx_string_tab[2709] +#define __pyx_n_u_accelerationshort __pyx_string_tab[2710] +#define __pyx_n_u_acquired __pyx_string_tab[2711] +#define __pyx_n_u_annualization __pyx_string_tab[2712] +#define __pyx_n_u_append __pyx_string_tab[2713] +#define __pyx_n_u_arg __pyx_string_tab[2714] +#define __pyx_n_u_args __pyx_string_tab[2715] +#define __pyx_n_u_arrays __pyx_string_tab[2716] +#define __pyx_n_u_ascii __pyx_string_tab[2717] +#define __pyx_n_u_astype __pyx_string_tab[2718] +#define __pyx_n_u_asyncio_coroutines __pyx_string_tab[2719] +#define __pyx_n_u_at_exit __pyx_string_tab[2720] +#define __pyx_n_u_atrperiod __pyx_string_tab[2721] +#define __pyx_n_u_averageperiod __pyx_string_tab[2722] +#define __pyx_n_u_avgperiod __pyx_string_tab[2723] +#define __pyx_n_u_b __pyx_string_tab[2724] +#define __pyx_n_u_bbperiod __pyx_string_tab[2725] +#define __pyx_n_u_begidx __pyx_string_tab[2726] +#define __pyx_n_u_bit __pyx_string_tab[2727] +#define __pyx_n_u_bytes2str __pyx_string_tab[2728] +#define __pyx_n_u_c_key __pyx_string_tab[2729] +#define __pyx_n_u_c_period __pyx_string_tab[2730] +#define __pyx_n_u_c_value __pyx_string_tab[2731] +#define __pyx_n_u_candlestick __pyx_string_tab[2732] +#define __pyx_n_u_channelperiod __pyx_string_tab[2733] +#define __pyx_n_u_cline_in_traceback __pyx_string_tab[2734] +#define __pyx_n_u_clone __pyx_string_tab[2735] +#define __pyx_n_u_close __pyx_string_tab[2736] +#define __pyx_n_u_cmoperiod __pyx_string_tab[2737] +#define __pyx_n_u_collections __pyx_string_tab[2738] +#define __pyx_n_u_column_stack __pyx_string_tab[2739] +#define __pyx_n_u_columns __pyx_string_tab[2740] +#define __pyx_n_u_convert __pyx_string_tab[2741] +#define __pyx_n_u_copy __pyx_string_tab[2742] +#define __pyx_n_u_cycleperiod __pyx_string_tab[2743] +#define __pyx_n_u_d __pyx_string_tab[2744] +#define __pyx_n_u_decode __pyx_string_tab[2745] +#define __pyx_n_u_default_value __pyx_string_tab[2746] +#define __pyx_n_u_defaults __pyx_string_tab[2747] +#define __pyx_n_u_delta __pyx_string_tab[2748] +#define __pyx_n_u_description __pyx_string_tab[2749] +#define __pyx_n_u_display_name __pyx_string_tab[2750] +#define __pyx_n_u_docs __pyx_string_tab[2751] +#define __pyx_n_u_documentation __pyx_string_tab[2752] +#define __pyx_n_u_emaperiod __pyx_string_tab[2753] +#define __pyx_n_u_empty __pyx_string_tab[2754] +#define __pyx_n_u_encode __pyx_string_tab[2755] +#define __pyx_n_u_endidx __pyx_string_tab[2756] +#define __pyx_n_u_endswith __pyx_string_tab[2757] +#define __pyx_n_u_enumerate __pyx_string_tab[2758] +#define __pyx_n_u_factor __pyx_string_tab[2759] +#define __pyx_n_u_factornarrow __pyx_string_tab[2760] +#define __pyx_n_u_factornormal __pyx_string_tab[2761] +#define __pyx_n_u_factorwide __pyx_string_tab[2762] +#define __pyx_n_u_fastd_matype __pyx_string_tab[2763] +#define __pyx_n_u_fastd_period __pyx_string_tab[2764] +#define __pyx_n_u_fastk_period __pyx_string_tab[2765] +#define __pyx_n_u_fastlimit __pyx_string_tab[2766] +#define __pyx_n_u_fastmatype __pyx_string_tab[2767] +#define __pyx_n_u_fastperiod __pyx_string_tab[2768] +#define __pyx_n_u_firstperiod __pyx_string_tab[2769] +#define __pyx_n_u_flag __pyx_string_tab[2770] +#define __pyx_n_u_flags __pyx_string_tab[2771] +#define __pyx_n_u_flags_lookup_dict __pyx_string_tab[2772] +#define __pyx_n_u_func_args __pyx_string_tab[2773] +#define __pyx_n_u_func_info __pyx_string_tab[2774] +#define __pyx_n_u_func_line __pyx_string_tab[2775] +#define __pyx_n_u_func_object __pyx_string_tab[2776] +#define __pyx_n_u_function_flags __pyx_string_tab[2777] +#define __pyx_n_u_function_name __pyx_string_tab[2778] +#define __pyx_n_u_functions __pyx_string_tab[2779] +#define __pyx_n_u_get_input_arrays __pyx_string_tab[2780] +#define __pyx_n_u_get_input_names __pyx_string_tab[2781] +#define __pyx_n_u_get_parameters __pyx_string_tab[2782] +#define __pyx_n_u_group __pyx_string_tab[2783] +#define __pyx_n_u_groups __pyx_string_tab[2784] +#define __pyx_n_u_handle __pyx_string_tab[2785] +#define __pyx_n_u_help __pyx_string_tab[2786] +#define __pyx_n_u_high __pyx_string_tab[2787] +#define __pyx_n_u_historylen __pyx_string_tab[2788] +#define __pyx_n_u_holder __pyx_string_tab[2789] +#define __pyx_n_u_i __pyx_string_tab[2790] +#define __pyx_n_u_id __pyx_string_tab[2791] +#define __pyx_n_u_idx __pyx_string_tab[2792] +#define __pyx_n_u_import_error __pyx_string_tab[2793] +#define __pyx_n_u_in __pyx_string_tab[2794] +#define __pyx_n_u_index __pyx_string_tab[2795] +#define __pyx_n_u_info __pyx_string_tab[2796] +#define __pyx_n_u_input_arrays __pyx_string_tab[2797] +#define __pyx_n_u_input_name __pyx_string_tab[2798] +#define __pyx_n_u_input_names __pyx_string_tab[2799] +#define __pyx_n_u_input_price_series_names __pyx_string_tab[2800] +#define __pyx_n_u_integer __pyx_string_tab[2801] +#define __pyx_n_u_is_empty __pyx_string_tab[2802] +#define __pyx_n_u_items __pyx_string_tab[2803] +#define __pyx_n_u_k __pyx_string_tab[2804] +#define __pyx_n_u_kcperiod __pyx_string_tab[2805] +#define __pyx_n_u_key __pyx_string_tab[2806] +#define __pyx_n_u_keys __pyx_string_tab[2807] +#define __pyx_n_u_kijunperiod __pyx_string_tab[2808] +#define __pyx_n_u_kind __pyx_string_tab[2809] +#define __pyx_n_u_kwargs __pyx_string_tab[2810] +#define __pyx_n_u_leftbars __pyx_string_tab[2811] +#define __pyx_n_u_length __pyx_string_tab[2812] +#define __pyx_n_u_limitmove __pyx_string_tab[2813] +#define __pyx_n_u_local __pyx_string_tab[2814] +#define __pyx_n_u_lookback __pyx_string_tab[2815] +#define __pyx_n_u_low __pyx_string_tab[2816] +#define __pyx_n_u_lower __pyx_string_tab[2817] +#define __pyx_n_u_ma1period __pyx_string_tab[2818] +#define __pyx_n_u_ma2period __pyx_string_tab[2819] +#define __pyx_n_u_ma3period __pyx_string_tab[2820] +#define __pyx_n_u_ma4period __pyx_string_tab[2821] +#define __pyx_n_u_matype __pyx_string_tab[2822] +#define __pyx_n_u_maximum __pyx_string_tab[2823] +#define __pyx_n_u_maxperiod __pyx_string_tab[2824] +#define __pyx_n_u_memo __pyx_string_tab[2825] +#define __pyx_n_u_minperiod __pyx_string_tab[2826] +#define __pyx_n_u_mintrendlength __pyx_string_tab[2827] +#define __pyx_n_u_missing __pyx_string_tab[2828] +#define __pyx_n_u_missing_keys __pyx_string_tab[2829] +#define __pyx_n_u_module_2 __pyx_string_tab[2830] +#define __pyx_n_u_msg __pyx_string_tab[2831] +#define __pyx_n_u_multiplier __pyx_string_tab[2832] +#define __pyx_n_u_n __pyx_string_tab[2833] +#define __pyx_n_u_name __pyx_string_tab[2834] +#define __pyx_n_u_namedtuple __pyx_string_tab[2835] +#define __pyx_n_u_nan __pyx_string_tab[2836] +#define __pyx_n_u_nbdev __pyx_string_tab[2837] +#define __pyx_n_u_nbdevdn __pyx_string_tab[2838] +#define __pyx_n_u_nbdevup __pyx_string_tab[2839] +#define __pyx_n_u_no_existing_input_arrays __pyx_string_tab[2840] +#define __pyx_n_u_num_inputs __pyx_string_tab[2841] +#define __pyx_n_u_num_opt_inputs __pyx_string_tab[2842] +#define __pyx_n_u_num_outputs __pyx_string_tab[2843] +#define __pyx_n_u_numbers __pyx_string_tab[2844] +#define __pyx_n_u_numpy __pyx_string_tab[2845] +#define __pyx_n_u_object __pyx_string_tab[2846] +#define __pyx_n_u_offset __pyx_string_tab[2847] +#define __pyx_n_u_offsetonreverse __pyx_string_tab[2848] +#define __pyx_n_u_open __pyx_string_tab[2849] +#define __pyx_n_u_openInterest __pyx_string_tab[2850] +#define __pyx_n_u_open_and_fill __pyx_string_tab[2851] +#define __pyx_n_u_operator __pyx_string_tab[2852] +#define __pyx_n_u_optIn __pyx_string_tab[2853] +#define __pyx_n_u_opt_input __pyx_string_tab[2854] +#define __pyx_n_u_opt_input_values __pyx_string_tab[2855] +#define __pyx_n_u_opt_inputs __pyx_string_tab[2856] +#define __pyx_n_u_ordereddict __pyx_string_tab[2857] +#define __pyx_n_u_out __pyx_string_tab[2858] +#define __pyx_n_u_outaroondown __pyx_string_tab[2859] +#define __pyx_n_u_outaroonup __pyx_string_tab[2860] +#define __pyx_n_u_outbearpower __pyx_string_tab[2861] +#define __pyx_n_u_outbegidx __pyx_string_tab[2862] +#define __pyx_n_u_outbullpower __pyx_string_tab[2863] +#define __pyx_n_u_outd __pyx_string_tab[2864] +#define __pyx_n_u_outfama __pyx_string_tab[2865] +#define __pyx_n_u_outfastd __pyx_string_tab[2866] +#define __pyx_n_u_outfastk __pyx_string_tab[2867] +#define __pyx_n_u_outfisher __pyx_string_tab[2868] +#define __pyx_n_u_outhaclose __pyx_string_tab[2869] +#define __pyx_n_u_outhahigh __pyx_string_tab[2870] +#define __pyx_n_u_outhalow __pyx_string_tab[2871] +#define __pyx_n_u_outhaopen __pyx_string_tab[2872] +#define __pyx_n_u_outhighstop __pyx_string_tab[2873] +#define __pyx_n_u_outinphase __pyx_string_tab[2874] +#define __pyx_n_u_outinteger __pyx_string_tab[2875] +#define __pyx_n_u_outinteger_data __pyx_string_tab[2876] +#define __pyx_n_u_outj __pyx_string_tab[2877] +#define __pyx_n_u_outk __pyx_string_tab[2878] +#define __pyx_n_u_outkijunsen __pyx_string_tab[2879] +#define __pyx_n_u_outkst __pyx_string_tab[2880] +#define __pyx_n_u_outkstsignal __pyx_string_tab[2881] +#define __pyx_n_u_outkvo __pyx_string_tab[2882] +#define __pyx_n_u_outkvosignal __pyx_string_tab[2883] +#define __pyx_n_u_outleadsine __pyx_string_tab[2884] +#define __pyx_n_u_outlowerband __pyx_string_tab[2885] +#define __pyx_n_u_outlowstop __pyx_string_tab[2886] +#define __pyx_n_u_outmacd __pyx_string_tab[2887] +#define __pyx_n_u_outmacdhist __pyx_string_tab[2888] +#define __pyx_n_u_outmacdsignal __pyx_string_tab[2889] +#define __pyx_n_u_outmama __pyx_string_tab[2890] +#define __pyx_n_u_outmax __pyx_string_tab[2891] +#define __pyx_n_u_outmaxidx __pyx_string_tab[2892] +#define __pyx_n_u_outmaxidx_data __pyx_string_tab[2893] +#define __pyx_n_u_outmiddleband __pyx_string_tab[2894] +#define __pyx_n_u_outmin __pyx_string_tab[2895] +#define __pyx_n_u_outminidx __pyx_string_tab[2896] +#define __pyx_n_u_outminidx_data __pyx_string_tab[2897] +#define __pyx_n_u_outminusvi __pyx_string_tab[2898] +#define __pyx_n_u_outmomentum __pyx_string_tab[2899] +#define __pyx_n_u_outnbelement __pyx_string_tab[2900] +#define __pyx_n_u_outpivotidx __pyx_string_tab[2901] +#define __pyx_n_u_outpivotidx_data __pyx_string_tab[2902] +#define __pyx_n_u_outplusvi __pyx_string_tab[2903] +#define __pyx_n_u_output __pyx_string_tab[2904] +#define __pyx_n_u_output_flags __pyx_string_tab[2905] +#define __pyx_n_u_output_name __pyx_string_tab[2906] +#define __pyx_n_u_output_names __pyx_string_tab[2907] +#define __pyx_n_u_outputs __pyx_string_tab[2908] +#define __pyx_n_u_outputs_valid __pyx_string_tab[2909] +#define __pyx_n_u_outquadrature __pyx_string_tab[2910] +#define __pyx_n_u_outreal __pyx_string_tab[2911] +#define __pyx_n_u_outreallowerband __pyx_string_tab[2912] +#define __pyx_n_u_outrealmiddleband __pyx_string_tab[2913] +#define __pyx_n_u_outrealupperband __pyx_string_tab[2914] +#define __pyx_n_u_outsenkouspana __pyx_string_tab[2915] +#define __pyx_n_u_outsenkouspanb __pyx_string_tab[2916] +#define __pyx_n_u_outsine __pyx_string_tab[2917] +#define __pyx_n_u_outslowd __pyx_string_tab[2918] +#define __pyx_n_u_outslowk __pyx_string_tab[2919] +#define __pyx_n_u_outsmi __pyx_string_tab[2920] +#define __pyx_n_u_outsmisignal __pyx_string_tab[2921] +#define __pyx_n_u_outsqueeze __pyx_string_tab[2922] +#define __pyx_n_u_outsupertrend __pyx_string_tab[2923] +#define __pyx_n_u_outswinghigh __pyx_string_tab[2924] +#define __pyx_n_u_outswinglow __pyx_string_tab[2925] +#define __pyx_n_u_outtenkansen __pyx_string_tab[2926] +#define __pyx_n_u_outtrend __pyx_string_tab[2927] +#define __pyx_n_u_outtrigger __pyx_string_tab[2928] +#define __pyx_n_u_outupperband __pyx_string_tab[2929] +#define __pyx_n_u_outwt1 __pyx_string_tab[2930] +#define __pyx_n_u_outwt2 __pyx_string_tab[2931] +#define __pyx_n_u_outzigzag __pyx_string_tab[2932] +#define __pyx_n_u_pandas __pyx_string_tab[2933] +#define __pyx_n_u_param __pyx_string_tab[2934] +#define __pyx_n_u_param_name __pyx_string_tab[2935] +#define __pyx_n_u_parameters __pyx_string_tab[2936] +#define __pyx_n_u_params __pyx_string_tab[2937] +#define __pyx_n_u_penetration __pyx_string_tab[2938] +#define __pyx_n_u_percentile __pyx_string_tab[2939] +#define __pyx_n_u_period __pyx_string_tab[2940] +#define __pyx_n_u_periods __pyx_string_tab[2941] +#define __pyx_n_u_polars __pyx_string_tab[2942] +#define __pyx_n_u_pop __pyx_string_tab[2943] +#define __pyx_n_u_price __pyx_string_tab[2944] +#define __pyx_n_u_price0 __pyx_string_tab[2945] +#define __pyx_n_u_price1 __pyx_string_tab[2946] +#define __pyx_n_u_price_series __pyx_string_tab[2947] +#define __pyx_n_u_price_series_name_values __pyx_string_tab[2948] +#define __pyx_n_u_prices __pyx_string_tab[2949] +#define __pyx_n_u_property __pyx_string_tab[2950] +#define __pyx_n_u_rangetype __pyx_string_tab[2951] +#define __pyx_n_u_rankperiod __pyx_string_tab[2952] +#define __pyx_n_u_real __pyx_string_tab[2953] +#define __pyx_n_u_real0 __pyx_string_tab[2954] +#define __pyx_n_u_real1 __pyx_string_tab[2955] +#define __pyx_n_u_replace __pyx_string_tab[2956] +#define __pyx_n_u_results __pyx_string_tab[2957] +#define __pyx_n_u_ret __pyx_string_tab[2958] +#define __pyx_n_u_retCode __pyx_string_tab[2959] +#define __pyx_n_u_ret_code __pyx_string_tab[2960] +#define __pyx_n_u_rightbars __pyx_string_tab[2961] +#define __pyx_n_u_roc1period __pyx_string_tab[2962] +#define __pyx_n_u_roc2period __pyx_string_tab[2963] +#define __pyx_n_u_roc3period __pyx_string_tab[2964] +#define __pyx_n_u_roc4period __pyx_string_tab[2965] +#define __pyx_n_u_rocmatype __pyx_string_tab[2966] +#define __pyx_n_u_rocperiod __pyx_string_tab[2967] +#define __pyx_n_u_run __pyx_string_tab[2968] +#define __pyx_n_u_s __pyx_string_tab[2969] +#define __pyx_n_u_schema __pyx_string_tab[2970] +#define __pyx_n_u_secondperiod __pyx_string_tab[2971] +#define __pyx_n_u_self __pyx_string_tab[2972] +#define __pyx_n_u_senkoubperiod __pyx_string_tab[2973] +#define __pyx_n_u_sensitivity __pyx_string_tab[2974] +#define __pyx_n_u_series __pyx_string_tab[2975] +#define __pyx_n_u_set_function_args __pyx_string_tab[2976] +#define __pyx_n_u_set_input_arrays __pyx_string_tab[2977] +#define __pyx_n_u_set_input_names __pyx_string_tab[2978] +#define __pyx_n_u_set_parameters __pyx_string_tab[2979] +#define __pyx_n_u_setdefault __pyx_string_tab[2980] +#define __pyx_n_u_settingtype __pyx_string_tab[2981] +#define __pyx_n_u_sigma __pyx_string_tab[2982] +#define __pyx_n_u_signalmatype __pyx_string_tab[2983] +#define __pyx_n_u_signalperiod __pyx_string_tab[2984] +#define __pyx_n_u_skip_first __pyx_string_tab[2985] +#define __pyx_n_u_slowd_matype __pyx_string_tab[2986] +#define __pyx_n_u_slowd_period __pyx_string_tab[2987] +#define __pyx_n_u_slowk_matype __pyx_string_tab[2988] +#define __pyx_n_u_slowk_period __pyx_string_tab[2989] +#define __pyx_n_u_slowlimit __pyx_string_tab[2990] +#define __pyx_n_u_slowmatype __pyx_string_tab[2991] +#define __pyx_n_u_slowperiod __pyx_string_tab[2992] +#define __pyx_n_u_sma1period __pyx_string_tab[2993] +#define __pyx_n_u_sma2period __pyx_string_tab[2994] +#define __pyx_n_u_sma3period __pyx_string_tab[2995] +#define __pyx_n_u_sma4period __pyx_string_tab[2996] +#define __pyx_n_u_stacklevel __pyx_string_tab[2997] +#define __pyx_n_u_startvalue __pyx_string_tab[2998] +#define __pyx_n_u_state __pyx_string_tab[2999] +#define __pyx_n_u_staticmethod __pyx_string_tab[3000] +#define __pyx_n_u_stddevperiod __pyx_string_tab[3001] +#define __pyx_n_u_stopperiod __pyx_string_tab[3002] +#define __pyx_n_u_str2bytes __pyx_string_tab[3003] +#define __pyx_n_u_streakperiod __pyx_string_tab[3004] +#define __pyx_n_u_stream __pyx_string_tab[3005] +#define __pyx_n_u_sys __pyx_string_tab[3006] +#define __pyx_n_u_table __pyx_string_tab[3007] +#define __pyx_n_u_talib__ta_lib __pyx_string_tab[3008] +#define __pyx_n_u_tenkanperiod __pyx_string_tab[3009] +#define __pyx_n_u_threading __pyx_string_tab[3010] +#define __pyx_n_u_timeStamp __pyx_string_tab[3011] +#define __pyx_n_u_timeperiod __pyx_string_tab[3012] +#define __pyx_n_u_timeperiod1 __pyx_string_tab[3013] +#define __pyx_n_u_timeperiod2 __pyx_string_tab[3014] +#define __pyx_n_u_timeperiod3 __pyx_string_tab[3015] +#define __pyx_n_u_to_numpy __pyx_string_tab[3016] +#define __pyx_n_u_type_2 __pyx_string_tab[3017] +#define __pyx_n_u_type __pyx_string_tab[3018] +#define __pyx_n_u_unst_id __pyx_string_tab[3019] +#define __pyx_n_u_update __pyx_string_tab[3020] +#define __pyx_n_u_update_info __pyx_string_tab[3021] +#define __pyx_n_u_updates __pyx_string_tab[3022] +#define __pyx_n_u_upper __pyx_string_tab[3023] +#define __pyx_n_u_use_setstate __pyx_string_tab[3024] +#define __pyx_n_u_value __pyx_string_tab[3025] +#define __pyx_n_u_values __pyx_string_tab[3026] +#define __pyx_n_u_version __pyx_string_tab[3027] +#define __pyx_n_u_vfactor __pyx_string_tab[3028] +#define __pyx_n_u_volume __pyx_string_tab[3029] +#define __pyx_n_u_volumedivisor __pyx_string_tab[3030] +#define __pyx_n_u_warn __pyx_string_tab[3031] +#define __pyx_n_u_warnings __pyx_string_tab[3032] +#define __pyx_n_u_wmaperiod __pyx_string_tab[3033] +#define __pyx_kp_b_iso88591_q_4q_nA_Q_q_a __pyx_string_tab[3034] +#define __pyx_kp_b_iso88591_uCq_Q_1A_1_q_AQ __pyx_string_tab[3035] +#define __pyx_kp_b_iso88591_y_1_q_Q_a_Q_a_Q_a_Q_a_Q_a_Q_a_Q __pyx_string_tab[3036] +#define __pyx_kp_b_iso88591_1F __pyx_string_tab[3037] +#define __pyx_kp_b_iso88591_AV1 __pyx_string_tab[3038] +#define __pyx_kp_b_iso88591_Q_s_a_AS_Q_1_1 __pyx_string_tab[3039] +#define __pyx_kp_b_iso88591_q_q_aq_Q_Q __pyx_string_tab[3040] +#define __pyx_kp_b_iso88591_q_0_kQR_7_q0_a_1 __pyx_string_tab[3041] +#define __pyx_kp_b_iso88591_q_0_kQR_7_0_1B_PQ_1 __pyx_string_tab[3042] +#define __pyx_kp_b_iso88591_a_1_1 __pyx_string_tab[3043] +#define __pyx_kp_b_iso88591_q_q_ST_Q_a __pyx_string_tab[3044] +#define __pyx_kp_b_iso88591_q_1_Q_9 __pyx_string_tab[3045] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A __pyx_string_tab[3046] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3047] +#define __pyx_kp_b_iso88591_1_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[3048] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_32 __pyx_string_tab[3049] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2 __pyx_string_tab[3050] +#define __pyx_kp_b_iso88591_A_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3051] +#define __pyx_kp_b_iso88591_SSjjk_aq_T_q_wc_A_axz_Q_U_7_A_A __pyx_string_tab[3052] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3053] +#define __pyx_kp_b_iso88591_TTU_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3054] +#define __pyx_kp_b_iso88591_TTl_m_E_E_u_u_M_M_e_e_f_aq_T_q __pyx_string_tab[3055] +#define __pyx_kp_b_iso88591_Q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3056] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4B __pyx_string_tab[3057] +#define __pyx_kp_b_iso88591_PPQ_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3058] +#define __pyx_kp_b_iso88591_UUV2_aq_T_q_wc_D_9_TARRSSVVW_ax __pyx_string_tab[3059] +#define __pyx_kp_b_iso88591_VVppq_aq_T_q_wc_A_axz_Q_U_7_A_A __pyx_string_tab[3060] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3061] +#define __pyx_kp_b_iso88591_a_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A __pyx_string_tab[3062] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5R __pyx_string_tab[3063] +#define __pyx_kp_b_iso88591_a_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3064] +#define __pyx_kp_b_iso88591_VVW_V6_wc_A_axz_q_U_7_A_A_we_32 __pyx_string_tab[3065] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6b __pyx_string_tab[3066] +#define __pyx_kp_b_iso88591_V6_wc_A_axz_q_U_7_A_A_we_4Ba_1H __pyx_string_tab[3067] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_3 __pyx_string_tab[3068] +#define __pyx_kp_b_iso88591_q_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3069] +#define __pyx_kp_b_iso88591_VVmmn4_aq_T_q_wc_D_9_TARRSSVVW __pyx_string_tab[3070] +#define __pyx_kp_b_iso88591_WWo_p_H_H_____v_v_M_M_d_d_P_P_Q __pyx_string_tab[3071] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r __pyx_string_tab[3072] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_TARRSSVVW_axz_Q_U __pyx_string_tab[3073] +#define __pyx_kp_b_iso88591_WWX_aq_T_q_wc_A_axz_Q_U_7_A_A_w __pyx_string_tab[3074] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_7r_2 __pyx_string_tab[3075] +#define __pyx_kp_b_iso88591_SSkk_Y_Y_Z_8_aq_T_q_wc_D_9_TARR __pyx_string_tab[3076] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_8 __pyx_string_tab[3077] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_8 __pyx_string_tab[3078] +#define __pyx_kp_b_iso88591_AAXXoop_aq_T_q_wc_A_axz_Q_U_7_A __pyx_string_tab[3079] +#define __pyx_kp_b_iso88591_AA_uuv0_aq_T_q_wc_D_9_Q_axz_Q_U __pyx_string_tab[3080] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_9 __pyx_string_tab[3081] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_3 __pyx_string_tab[3082] +#define __pyx_kp_b_iso88591_C1_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3083] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_2Q __pyx_string_tab[3084] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_1Cq_axz_Q_U_7_A_A __pyx_string_tab[3085] +#define __pyx_kp_b_iso88591_01_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3086] +#define __pyx_kp_b_iso88591_45_aq_T_q_wc_A_axz_Q_U_7_A_A_we __pyx_string_tab[3087] +#define __pyx_kp_b_iso88591_UUV_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3088] +#define __pyx_kp_b_iso88591_UUmmn_aq_Qa_6_wc_A_axz_XZs_U_7 __pyx_string_tab[3089] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we __pyx_string_tab[3090] +#define __pyx_kp_b_iso88591_VVW_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3091] +#define __pyx_kp_b_iso88591_YYZ_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3092] +#define __pyx_kp_b_iso88591_WWX_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3093] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3094] +#define __pyx_kp_b_iso88591_A_aq_Kq_6_wc_A_axz_XZuA_U_7_A_A __pyx_string_tab[3095] +#define __pyx_kp_b_iso88591_A_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[3096] +#define __pyx_kp_b_iso88591_XXY_aq_Qa_6_wc_A_axz_XZs_U_7_A __pyx_string_tab[3097] +#define __pyx_kp_b_iso88591_AB_aq_Qa_6_wc_D_9_Q_axz_XZs_U_7 __pyx_string_tab[3098] +#define __pyx_kp_b_iso88591_AZZ_0_aq_Qa_6_wc_D_as_nASPQ_axz __pyx_string_tab[3099] +#define __pyx_kp_b_iso88591_A_z_____b_b_G_G_h_h_i_4_aq_Qa_6 __pyx_string_tab[3100] +#define __pyx_kp_b_iso88591_BC_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3101] +#define __pyx_kp_b_iso88591_BC_Kq_7_wc_A_axz_hj_a_U_7_A_A_w __pyx_string_tab[3102] +#define __pyx_kp_b_iso88591_BC_aq_6_wc_A_axz_XZvQ_U_7_A_A_w __pyx_string_tab[3103] +#define __pyx_kp_b_iso88591_BC_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[3104] +#define __pyx_kp_b_iso88591_BXXY_aq_Qa_6_wc_Qc_1Cq_axz_XZs __pyx_string_tab[3105] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_A_axz_XZs_U_7_A_A __pyx_string_tab[3106] +#define __pyx_kp_b_iso88591_CD_aq_Kq_6_wc_A_axz_XZuA_U_7_A __pyx_string_tab[3107] +#define __pyx_kp_b_iso88591_CD_aq_Qa_6_wc_D_9_TARRSSVVW_axz __pyx_string_tab[3108] +#define __pyx_kp_b_iso88591_CZZqqr_aq_k_6_wc_A_axz_XZwa_U_7 __pyx_string_tab[3109] +#define __pyx_kp_b_iso88591_C_vvw6_aq_Qa_6_wc_D_9_TARRSSVVZ __pyx_string_tab[3110] +#define __pyx_kp_b_iso88591_DE_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A __pyx_string_tab[3111] +#define __pyx_kp_b_iso88591_YZ_aq_Qa_Kq_6_a_wc_A_axz_XZs_R __pyx_string_tab[3112] +#define __pyx_kp_b_iso88591_Yq_r_I_I_J_2_aq_Qa_Kq_6_a_wc_D __pyx_string_tab[3113] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[3114] +#define __pyx_kp_b_iso88591_Z_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs __pyx_string_tab[3115] +#define __pyx_kp_b_iso88591_Zr_s_K_K_c_c_d_0_aq_Qa_Kq_6_a_w __pyx_string_tab[3116] +#define __pyx_kp_b_iso88591_Zttu_aq_Qa_Kq_6_a_wc_A_axz_XZs __pyx_string_tab[3117] +#define __pyx_kp_b_iso88591_Zt_u_O_O_e_e_6_aq_Qa_Kq_6_a_wc __pyx_string_tab[3118] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab __pyx_string_tab[3119] +#define __pyx_kp_b_iso88591_sst_aq_Qa_6_a_wc_A_axz_XZs_R_bb __pyx_string_tab[3120] +#define __pyx_kp_b_iso88591_s_t_L_L_M_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[3121] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_6 __pyx_string_tab[3122] +#define __pyx_kp_b_iso88591_v_w_Q_Q_f_f_A_2_aq_Qa_Kq_6_a_wc __pyx_string_tab[3123] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_2 __pyx_string_tab[3124] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_Q_axz_XZs_R __pyx_string_tab[3125] +#define __pyx_kp_b_iso88591_s_t_I_I_____y_y_U_U_V_4_aq_Qa_K __pyx_string_tab[3126] +#define __pyx_kp_b_iso88591_v_w_P_P_Q_aq_Qa_Kq_6_a_wc_A_axz __pyx_string_tab[3127] +#define __pyx_kp_b_iso88591_w_x_R_R_S_aq_Qa_Kq_6_a_wc_D_9_Q __pyx_string_tab[3128] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a_2 __pyx_string_tab[3129] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_a __pyx_string_tab[3130] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_D_9_TARRSSVVW __pyx_string_tab[3131] +#define __pyx_kp_b_iso88591_W_W_X_aq_Qa_Kq_6_a_wc_D_9_Q_axz __pyx_string_tab[3132] +#define __pyx_kp_b_iso88591_ayyz_aq_Qa_Kq_6_a_wc_D_as_axz_X __pyx_string_tab[3133] +#define __pyx_kp_b_iso88591_tu_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ __pyx_string_tab[3134] +#define __pyx_kp_b_iso88591_uv_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZ __pyx_string_tab[3135] +#define __pyx_kp_b_iso88591_wx_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R __pyx_string_tab[3136] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_13 __pyx_string_tab[3137] +#define __pyx_kp_b_iso88591_A_B_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3138] +#define __pyx_kp_b_iso88591_A_Y_Y_Z_aq_aq_Qa_Kq_6_uA_wc_A_a __pyx_string_tab[3139] +#define __pyx_kp_b_iso88591_C_D_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3140] +#define __pyx_kp_b_iso88591_D_E_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3141] +#define __pyx_kp_b_iso88591_E_F_aq_aq_Qa_Kq_6_uA_wc_Qc_axz __pyx_string_tab[3142] +#define __pyx_kp_b_iso88591_x_P_P_h_h_i_aq_Qa_Kq_6_gQ_wc_D __pyx_string_tab[3143] +#define __pyx_kp_b_iso88591_z_R_R_S_aq_Qa_Kq_6_gQ_wc_A_axz __pyx_string_tab[3144] +#define __pyx_kp_b_iso88591_aq_xs_q_a_Qa_1 __pyx_string_tab[3145] +#define __pyx_kp_b_iso88591_aq_xs_q_q_q_A_Q_a __pyx_string_tab[3146] +#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_d_7_WA_d_7_Q __pyx_string_tab[3147] +#define __pyx_kp_b_iso88591_q_l_vWE_Q_q_q_q_t1G_gQ_t1G_a __pyx_string_tab[3148] +#define __pyx_kp_b_iso88591_q_9A_1_q_1_1_1A_q_a_1A_4z_A_G1 __pyx_string_tab[3149] +#define __pyx_kp_b_iso88591_Qa_a_Q_a_4q_a_Qd_c_a_Qd_s_4q __pyx_string_tab[3150] +#define __pyx_kp_b_iso88591_Qa_a_2_85_Q_2_9AT_4q_1G6_wc_t81 __pyx_string_tab[3151] +#define __pyx_kp_b_iso88591_Qa_a_31HE_Q_31_9AT_4q_1HF_wc_d __pyx_string_tab[3152] +#define __pyx_kp_b_iso88591_Qa_a_5Qhe1A_Q_5Q_9AT_4q_1JfA_Cq __pyx_string_tab[3153] +#define __pyx_kp_b_iso88591_a_1G1A_q_V1E_q_WAQ_aq_Q_2_1 __pyx_string_tab[3154] +#define __pyx_kp_b_iso88591_a_AQa_0_Q_V1E_gQfAU_q_Q_31_1 __pyx_string_tab[3155] +#define __pyx_kp_b_iso88591_uBa_q_1A__F_F_t2Q __pyx_string_tab[3156] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa __pyx_string_tab[3157] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_gQ_wc_A_axz_XZs_R_aa_2 __pyx_string_tab[3158] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_3 __pyx_string_tab[3159] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_4 __pyx_string_tab[3160] +#define __pyx_kp_b_iso88591_aq_Qa_Kq_6_a_wc_A_axz_XZs_R_aab_5 __pyx_string_tab[3161] +#define __pyx_kp_b_iso88591_aq_Qa_6_a_wc_A_axz_XZs_R_bbc_U __pyx_string_tab[3162] +#define __pyx_kp_b_iso88591_aq_Qa_6_wc_A_axz_XZs_U_7_A_A_we_2 __pyx_string_tab[3163] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_11 __pyx_string_tab[3164] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8 __pyx_string_tab[3165] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_3 __pyx_string_tab[3166] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_4 __pyx_string_tab[3167] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_8 __pyx_string_tab[3168] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_12 __pyx_string_tab[3169] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_2 __pyx_string_tab[3170] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_7 __pyx_string_tab[3171] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_5 __pyx_string_tab[3172] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_6 __pyx_string_tab[3173] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_9 __pyx_string_tab[3174] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_Qc_axz_XZt8_10 __pyx_string_tab[3175] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S_2 __pyx_string_tab[3176] +#define __pyx_kp_b_iso88591_aq_aq_Qa_Kq_6_uA_wc_A_axz_XZt8S __pyx_string_tab[3177] +#define __pyx_kp_b_iso88591_aq_T_q_wc_Qc_axz_Q_U_7_A_A_we_A __pyx_string_tab[3178] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H_2 __pyx_string_tab[3179] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_31 __pyx_string_tab[3180] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_4A __pyx_string_tab[3181] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_5Q __pyx_string_tab[3182] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_6a __pyx_string_tab[3183] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1H __pyx_string_tab[3184] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_1 __pyx_string_tab[3185] +#define __pyx_kp_b_iso88591_aq_T_q_wc_A_axz_Q_U_7_A_A_we_A_2 __pyx_string_tab[3186] +#define __pyx_kp_b_iso88591_Kq_7_wc_A_axz_hj_a_U_7_A_A_we_3 __pyx_string_tab[3187] +#define __pyx_kp_b_iso88591_aq_6_wc_A_axz_XZvQ_U_7_A_A_we_3 __pyx_string_tab[3188] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w __pyx_string_tab[3189] +#define __pyx_kp_b_iso88591_Kq_Kq_7_wc_A_axz_hj_Q_U_7_A_A_w_2 __pyx_string_tab[3190] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w_2 __pyx_string_tab[3191] +#define __pyx_kp_b_iso88591_aq_T_q_wc_D_9_Q_axz_Q_U_7_A_A_w __pyx_string_tab[3192] +#define __pyx_kp_b_iso88591_2_aq_aq_Qa_Kq_6_uA_wc_D_9_TARRS __pyx_string_tab[3193] +#define __pyx_kp_b_iso88591_A_A_6_6_6_7_7_81_7_7_5_6_a_Q_81 __pyx_string_tab[3194] +#define __pyx_kp_b_iso88591_A_iq_46d_5 __pyx_string_tab[3195] +#define __pyx_kp_b_iso88591_A_q __pyx_string_tab[3196] +#define __pyx_kp_b_iso88591_A_q_q __pyx_string_tab[3197] +#define __pyx_kp_b_iso88591_A_t5 __pyx_string_tab[3198] +#define __pyx_kp_b_iso88591_A_t81A __pyx_string_tab[3199] +#define __pyx_kp_b_iso88591_A_uAS __pyx_string_tab[3200] +#define __pyx_kp_b_iso88591_A_uBd __pyx_string_tab[3201] +#define __pyx_kp_b_iso88591_A_wat81 __pyx_string_tab[3202] +#define __pyx_kp_b_iso88591_A_Qd __pyx_string_tab[3203] +#define __pyx_kp_b_iso88591_A_A_1_N_q_5_A_z_HA_G1A_q_q __pyx_string_tab[3204] +#define __pyx_kp_b_iso88591_A_A_4_B_q_A_U_q_gU_axq_wgQa_uA_a __pyx_string_tab[3205] +#define __pyx_kp_b_iso88591_A __pyx_string_tab[3206] +#define __pyx_kp_b_iso88591_A_2 __pyx_string_tab[3207] +#define __pyx_kp_b_iso88591_A_3 __pyx_string_tab[3208] +#define __pyx_kp_b_iso88591_A_AAXXY_aq_Q_aq_axq_oQha_81A_7_1 __pyx_string_tab[3209] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_aq_q_1AXY __pyx_string_tab[3210] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3211] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q_2 __pyx_string_tab[3212] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq_2 __pyx_string_tab[3213] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_q_q_bPX __pyx_string_tab[3214] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_0 __pyx_string_tab[3215] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1 __pyx_string_tab[3216] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_oXQa_7_AQ_q_1_2 __pyx_string_tab[3217] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Qa_q __pyx_string_tab[3218] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_aq_q_31 __pyx_string_tab[3219] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4_2 __pyx_string_tab[3220] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_2_C81A_7_C1A __pyx_string_tab[3221] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_6Q_11K8STTU_7 __pyx_string_tab[3222] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_1_axq_axq __pyx_string_tab[3223] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_axq __pyx_string_tab[3224] +#define __pyx_kp_b_iso88591_A_a_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[3225] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_A __pyx_string_tab[3226] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_q_bPX __pyx_string_tab[3227] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1L_q_0 __pyx_string_tab[3228] +#define __pyx_kp_b_iso88591_A_SST_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3229] +#define __pyx_kp_b_iso88591_A_A_aq_Q_aq_axq_oQha_q_xq_7_9_a __pyx_string_tab[3230] +#define __pyx_kp_b_iso88591_A_B_aq_Q_aq_axq_oQha_A_7_a_1_q_1 __pyx_string_tab[3231] +#define __pyx_kp_b_iso88591_A_BBTTkk_Y_Y_Z_aq_Q_aq_axq_oQha __pyx_string_tab[3232] +#define __pyx_kp_b_iso88591_A_BBUUV_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3233] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_Q_81A __pyx_string_tab[3234] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_oXQa __pyx_string_tab[3235] +#define __pyx_kp_b_iso88591_A_BBXXjjk_aq_Q_aq_axq_oQha_M_7_y __pyx_string_tab[3236] +#define __pyx_kp_b_iso88591_A_BBYYp_q_G_G_s_s_I_I_b_b_x_x_L __pyx_string_tab[3237] +#define __pyx_kp_b_iso88591_A_BBYYp_q_H_H_____v_v_M_M_f_f_g __pyx_string_tab[3238] +#define __pyx_kp_b_iso88591_A_BBZZ_aq_Q_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3239] +#define __pyx_kp_b_iso88591_A_BB_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3240] +#define __pyx_kp_b_iso88591_A_CC_uuv_aq_Q_aq_axq_oQha_a_XQa __pyx_string_tab[3241] +#define __pyx_kp_b_iso88591_A_DA_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3242] +#define __pyx_kp_b_iso88591_A_DD_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3243] +#define __pyx_kp_b_iso88591_A_DD_vvw_aq_Q_aq_axq_oQha_oXQa_7 __pyx_string_tab[3244] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_A_9_7_a_1 __pyx_string_tab[3245] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3246] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1A_q_Qh __pyx_string_tab[3247] +#define __pyx_kp_b_iso88591_A_Q_aq_axq_oQha_a_XQa_7_8_q_Qaxy __pyx_string_tab[3248] +#define __pyx_kp_b_iso88591_A_DDWWX_Q_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3249] +#define __pyx_kp_b_iso88591_A_EQ_aq_Q_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3250] +#define __pyx_kp_b_iso88591_A_DA_aq_Qa_XQ_aq_axq_oQha_81A_7 __pyx_string_tab[3251] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3252] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7_2 __pyx_string_tab[3253] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_81A_7_1 __pyx_string_tab[3254] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7 __pyx_string_tab[3255] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[3256] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_M_7_1_8 __pyx_string_tab[3257] +#define __pyx_kp_b_iso88591_A01_aq_Qa_XQ_aq_axq_oQha_oXQa_7_2 __pyx_string_tab[3258] +#define __pyx_kp_b_iso88591_A0Fa_aq_Qa_XQ_aq_axq_oQha_Q_81A __pyx_string_tab[3259] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_A_7_a __pyx_string_tab[3260] +#define __pyx_kp_b_iso88591_A0Gq_aq_Qa_XQ_aq_axq_oQha_q_xq_7 __pyx_string_tab[3261] +#define __pyx_kp_b_iso88591_A0GG_a_aq_Qa_XQ_aq_axq_oQha_A_7 __pyx_string_tab[3262] +#define __pyx_kp_b_iso88591_A0I_aq_Qa_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[3263] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3264] +#define __pyx_kp_b_iso88591_A23_aq_q_XQ_aq_axq_oQha_M_7_1_q __pyx_string_tab[3265] +#define __pyx_kp_b_iso88591_A2JJdde_aq_Qa_XQ_aq_axq_oQha_oXQ __pyx_string_tab[3266] +#define __pyx_kp_b_iso88591_A34_aq_XQ_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3267] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_a_XQa_7_8 __pyx_string_tab[3268] +#define __pyx_kp_b_iso88591_A34_q_q_Ya_aq_axq_oQha_M_7_1_q_q __pyx_string_tab[3269] +#define __pyx_kp_b_iso88591_A3II_aq_M_XQ_aq_axq_oQha_a_XQa_7 __pyx_string_tab[3270] +#define __pyx_kp_b_iso88591_A3QQt_u_T_T_v_v_Z_Z_z_z_aq_Qa_XQ __pyx_string_tab[3271] +#define __pyx_kp_b_iso88591_A45_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3272] +#define __pyx_kp_b_iso88591_A4LA_aq_Qa_XQ_aq_axq_oQha_M_7_Qh __pyx_string_tab[3273] +#define __pyx_kp_b_iso88591_A5J_aq_Qa_XQ_aq_axq_oQha_Q_81A_7 __pyx_string_tab[3274] +#define __pyx_kp_b_iso88591_A5JJ_x_y_T_T_o_o_p_aq_Qa_q_XWA_a __pyx_string_tab[3275] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_A_7 __pyx_string_tab[3276] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[3277] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_a_XQ __pyx_string_tab[3278] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_q_xq __pyx_string_tab[3279] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7 __pyx_string_tab[3280] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_81A __pyx_string_tab[3281] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa_2 __pyx_string_tab[3282] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_Q_81_2 __pyx_string_tab[3283] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_M_7_2 __pyx_string_tab[3284] +#define __pyx_kp_b_iso88591_A78_aq_Qa_q_XWA_aq_axq_oQha_oXQa __pyx_string_tab[3285] +#define __pyx_kp_b_iso88591_A7MMbbc_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3286] +#define __pyx_kp_b_iso88591_A7NNee_aq_Qa_q_XWA_aq_axq_oQha_Q __pyx_string_tab[3287] +#define __pyx_kp_b_iso88591_A7QQR_aq_Qa_q_XWA_aq_axq_oQha_A __pyx_string_tab[3288] +#define __pyx_kp_b_iso88591_A7QQeef_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3289] +#define __pyx_kp_b_iso88591_A8PPhhi_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3290] +#define __pyx_kp_b_iso88591_A8UUV_aq_Qa_XWA_aq_axq_oQha_Q_81 __pyx_string_tab[3291] +#define __pyx_kp_b_iso88591_A9Oq_aq_Qa_q_XWA_aq_axq_oQha_Q_8 __pyx_string_tab[3292] +#define __pyx_kp_b_iso88591_A9RRkkl_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3293] +#define __pyx_kp_b_iso88591_A9RRkk_Y_Y_Z_aq_Qa_q_XWA_aq_axq __pyx_string_tab[3294] +#define __pyx_kp_b_iso88591_A9RRk_l_A_A_Z_Z_aq_Qa_q_XWA_aq_a __pyx_string_tab[3295] +#define __pyx_kp_b_iso88591_A_TTmmn_aq_Qa_q_XWA_aq_axq_oQha __pyx_string_tab[3296] +#define __pyx_kp_b_iso88591_A_ZZ_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[3297] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_Q_81A __pyx_string_tab[3298] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_3 __pyx_string_tab[3299] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q __pyx_string_tab[3300] +#define __pyx_kp_b_iso88591_A_VVW_aq_Qa_q_XWIQ_aq_axq_oQha_q __pyx_string_tab[3301] +#define __pyx_kp_b_iso88591_A_VVoop_aq_Qa_q_XWIQ_aq_axq_oQha __pyx_string_tab[3302] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_5 __pyx_string_tab[3303] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_4 __pyx_string_tab[3304] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha __pyx_string_tab[3305] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[3306] +#define __pyx_kp_b_iso88591_AAB_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[3307] +#define __pyx_kp_b_iso88591_A_Jm6_M_Q_Jiq_A_O9F_b_O1 __pyx_string_tab[3308] +#define __pyx_kp_b_iso88591_A_A_4wawa_1_Kq_Q_V1E_d_1_0_Ya_T __pyx_string_tab[3309] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_7_a_q_1AXYf __pyx_string_tab[3310] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_7q_q_2 __pyx_string_tab[3311] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_8_q_Q __pyx_string_tab[3312] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_q_xq_7_9_q_aq __pyx_string_tab[3313] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_M_7_q_q_bPXXd __pyx_string_tab[3314] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_A_9_7_a_q_31A __pyx_string_tab[3315] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_Q_81A_7_q_q_4 __pyx_string_tab[3316] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa __pyx_string_tab[3317] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_a_XQa_7_q_5Qa_2 __pyx_string_tab[3318] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_81A_7_1_q_1HA __pyx_string_tab[3319] +#define __pyx_kp_b_iso88591_A_aq_Q_aq_axq_oQha_1_7xq_7_Q_81 __pyx_string_tab[3320] +#define __pyx_kp_b_iso88591_A_aq_Qa_XQ_aq_axq_oQha_oXQa_7_A __pyx_string_tab[3321] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_Q_81A __pyx_string_tab[3322] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_M_7_q __pyx_string_tab[3323] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWA_aq_axq_oQha_oXQa_7 __pyx_string_tab[3324] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_A_7_a __pyx_string_tab[3325] +#define __pyx_kp_b_iso88591_A_aq_Qa_q_XWIQ_aq_axq_oQha_a_XQa __pyx_string_tab[3326] +#define __pyx_kp_b_iso88591_A_aq_Qa_XWA_aq_axq_oQha_oXQa_7_A __pyx_string_tab[3327] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_2 __pyx_string_tab[3328] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_81 __pyx_string_tab[3329] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_oX __pyx_string_tab[3330] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1 __pyx_string_tab[3331] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A __pyx_string_tab[3332] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_Q_3 __pyx_string_tab[3333] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_a __pyx_string_tab[3334] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_0q __pyx_string_tab[3335] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_1_2 __pyx_string_tab[3336] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_2 __pyx_string_tab[3337] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_3 __pyx_string_tab[3338] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_41 __pyx_string_tab[3339] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_5A __pyx_string_tab[3340] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_6Q __pyx_string_tab[3341] +#define __pyx_kp_b_iso88591_A_aq_aq_Qa_q_XXWA_aq_axq_oQha_A_2 __pyx_string_tab[3342] +#define __pyx_kp_b_iso88591_A_aq_XQ_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3343] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_Q_81A_7_7q __pyx_string_tab[3344] +#define __pyx_kp_b_iso88591_A_q_q_Ya_aq_axq_oQha_a_XQa_7_8_q __pyx_string_tab[3345] +#define __pyx_kp_b_iso88591_A_q_Ya_aq_axq_oQha_Q_81A_7_7q_q __pyx_string_tab[3346] +#define __pyx_kp_b_iso88591_A_a_4q_aq __pyx_string_tab[3347] +#define __pyx_kp_b_iso88591_A_A_WA_5_q_5_V1_5_U __pyx_string_tab[3348] +#define __pyx_kp_b_iso88591_A_A_L_6_Qk_A_a_QnA_a __pyx_string_tab[3349] +#define __pyx_kp_b_iso88591_A_A_k_M_a_q_T_7q_q __pyx_string_tab[3350] +#define __pyx_kp_b_iso88591_A_A_AQ_6_A_E_A_q __pyx_string_tab[3351] +#define __pyx_kp_b_iso88591_A_A_a_G1_t3e1_auF_1_6_AT_Q_S_Q_a __pyx_string_tab[3352] +#define __pyx_kp_b_iso88591_A_d_q_4z_q_aq_q __pyx_string_tab[3353] +#define __pyx_kp_b_iso88591_A_t85 __pyx_string_tab[3354] +#define __pyx_kp_b_iso88591_A_t85_Q_2 __pyx_string_tab[3355] +#define __pyx_kp_b_iso88591_A_t85_Q __pyx_string_tab[3356] +#define __pyx_kp_b_iso88591_A_A_k_N_q_q_e_q_1A_q __pyx_string_tab[3357] +#define __pyx_kp_b_iso88591_A_A_at1_C_IQe1_D_aq_E_AZq_vV_2_V __pyx_string_tab[3358] +#define __pyx_kp_b_iso88591_A_HKq_1A_6_5Q_6_5_7_4A_6_7_6_E_J __pyx_string_tab[3359] +#define __pyx_kp_b_iso88591_A_A_4uA_e87_4z_q_aq_WE_5_q_E_a_s __pyx_string_tab[3360] +#define __pyx_kp_b_iso88591_A_A_2_k_Qa_e_e1_2S_AQ_U_t1A_q_4 __pyx_string_tab[3361] +#define __pyx_kp_b_iso88591_A2_A_QnA_1_t_6a_WA_d_Q_d_1_q_s_A __pyx_string_tab[3362] +#define __pyx_kp_b_iso88591_N_1_A_t1 __pyx_string_tab[3363] +#define __pyx_kp_b_iso88591_t1_1_l_1_1_l_QoQ_a __pyx_string_tab[3364] +#define __pyx_kp_b_iso88591_Q_A_1_G4_1_wiz_q_G9A_vWA_q_1_a __pyx_string_tab[3365] +#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) { @@ -17594,6 +19981,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); @@ -17602,6 +19991,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); @@ -17614,6 +20005,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); @@ -17744,6 +20137,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); @@ -17758,6 +20159,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); @@ -17768,6 +20173,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); @@ -17776,18 +20183,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); @@ -17804,6 +20217,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); @@ -17812,6 +20229,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); @@ -17844,6 +20269,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); @@ -17874,6 +20303,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); @@ -17884,6 +20315,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); @@ -17902,16 +20335,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); @@ -17922,6 +20361,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); @@ -17936,6 +20379,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); @@ -17962,6 +20415,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); @@ -17970,21 +20425,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<2876; ++i) { Py_CLEAR(clear_module_state->__pyx_string_tab[i]); } - for (int i=0; i<36; ++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<3366; ++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); @@ -18047,6 +20506,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); @@ -18055,6 +20516,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); @@ -18067,6 +20530,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); @@ -18197,6 +20662,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); @@ -18211,6 +20684,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); @@ -18221,6 +20698,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); @@ -18229,18 +20708,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); @@ -18257,6 +20742,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); @@ -18265,6 +20754,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); @@ -18297,6 +20794,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); @@ -18327,6 +20828,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); @@ -18337,6 +20840,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); @@ -18355,16 +20860,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); @@ -18375,6 +20886,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); @@ -18389,6 +20904,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); @@ -18415,6 +20940,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); @@ -18423,21 +20950,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<2876; ++i) { __Pyx_VISIT_CONST(traverse_module_state->__pyx_string_tab[i]); } - for (int i=0; i<36; ++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<3366; ++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); @@ -21968,7 +24499,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); @@ -22082,6 +24613,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; @@ -22143,39 +24690,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:; @@ -22206,9 +24753,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; { @@ -22276,32 +24823,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:; @@ -22341,28 +24888,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; @@ -22379,7 +24926,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; @@ -22400,13 +24947,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 @@ -22415,7 +24962,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; @@ -22432,9 +24979,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; { @@ -22507,39 +25054,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:; @@ -22585,7 +25132,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 @@ -22604,7 +25151,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; @@ -22626,10 +25173,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:*/ { @@ -22639,13 +25186,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 @@ -22664,7 +25211,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; @@ -22701,7 +25248,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; } @@ -22716,7 +25263,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; @@ -22782,32 +25329,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:; @@ -22851,7 +25398,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 @@ -22870,7 +25417,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; @@ -22893,7 +25440,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:*/ { @@ -22903,13 +25450,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 @@ -22928,7 +25475,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; @@ -22965,7 +25512,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; } @@ -22980,7 +25527,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; @@ -23052,32 +25599,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:; @@ -23118,7 +25665,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:*/ { @@ -23128,13 +25675,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 @@ -23153,7 +25700,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; @@ -23190,7 +25737,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; } @@ -23205,7 +25752,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; @@ -23230,23 +25777,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 @@ -23271,13 +26070,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 @@ -23296,7 +26095,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; @@ -23333,7 +26132,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; } @@ -23348,7 +26147,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; @@ -23379,16 +26178,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 @@ -23421,53 +26220,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:; @@ -23478,7 +26277,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) { @@ -23492,7 +26291,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 @@ -23517,13 +26316,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 @@ -23542,7 +26341,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; @@ -23579,7 +26378,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; } @@ -23594,7 +26393,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; @@ -23618,16 +26417,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 @@ -23657,32 +26456,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:; @@ -23693,7 +26492,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) { @@ -23704,7 +26503,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 @@ -23729,13 +26528,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 @@ -23754,7 +26553,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; @@ -23791,7 +26590,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; } @@ -23806,7 +26605,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; @@ -24587,16 +27386,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 @@ -24717,7 +27516,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; @@ -24739,7 +27538,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; @@ -24982,16 +27781,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 @@ -25093,7 +27892,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; @@ -25113,7 +27912,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; @@ -25412,16 +28211,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 @@ -25488,7 +28287,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; @@ -25507,7 +28306,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; @@ -25741,16 +28540,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 @@ -25844,7 +28643,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; @@ -25863,7 +28662,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; @@ -26120,16 +28919,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 @@ -26205,7 +29004,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; @@ -26224,7 +29023,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; @@ -26467,16 +29266,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 @@ -26601,7 +29400,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; @@ -26622,7 +29421,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; @@ -26879,16 +29678,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 @@ -26981,7 +29780,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; @@ -27001,7 +29800,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; @@ -27244,16 +30043,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 @@ -27355,7 +30154,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; @@ -27375,7 +30174,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; @@ -27625,16 +30424,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 @@ -27736,7 +30535,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; @@ -27756,7 +30555,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; @@ -28006,26 +30805,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 @@ -28036,7 +30835,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); @@ -28046,7 +30845,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) { @@ -28071,9 +30870,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) { @@ -28088,41 +30887,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; @@ -28139,11 +30943,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; @@ -28155,40 +30960,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) @@ -28212,7 +31009,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:*/ { @@ -28237,7 +31034,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:*/ { @@ -28261,7 +31058,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:*/ { @@ -28301,17 +31098,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; @@ -28332,22 +31129,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; @@ -28366,7 +31163,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:; @@ -28377,8 +31174,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; @@ -28386,26 +31182,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 @@ -28416,7 +31212,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); @@ -28426,7 +31222,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) { @@ -28451,9 +31247,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) { @@ -28468,46 +31264,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; @@ -28524,12 +31315,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; @@ -28541,32 +31331,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) @@ -28590,7 +31388,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:*/ { @@ -28615,7 +31413,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:*/ { @@ -28639,7 +31437,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:*/ { @@ -28679,17 +31477,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; @@ -28710,22 +31508,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; @@ -28744,7 +31542,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:; @@ -28755,7 +31553,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; @@ -28763,36 +31562,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); @@ -28802,11 +31602,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) @@ -28823,12 +31627,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) @@ -28836,36 +31644,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; @@ -28881,11 +31699,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; @@ -28893,70 +31713,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; } @@ -28967,7 +31766,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:*/ { @@ -28982,7 +31781,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:*/ { @@ -28992,7 +31791,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:*/ { @@ -29005,15 +31804,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; @@ -29021,7 +31815,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:*/ { @@ -29061,19 +31855,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; @@ -29094,51 +31886,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:; @@ -29148,10 +31930,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; @@ -29159,16 +31939,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 @@ -29188,7 +31968,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); @@ -29200,40 +31980,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; } @@ -29241,27 +32021,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; @@ -29281,7 +32061,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; @@ -29289,25 +32069,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); @@ -29331,15 +32114,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; } @@ -29375,7 +32168,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:*/ { @@ -29388,10 +32181,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; @@ -29399,7 +32197,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:*/ { @@ -29439,17 +32237,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; @@ -29470,41 +32270,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:; @@ -29514,7 +32324,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); @@ -29524,34 +32335,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); @@ -29561,46 +32374,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; @@ -29615,11 +32452,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; @@ -29631,35 +32469,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; @@ -29680,7 +32526,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:*/ { @@ -29695,7 +32541,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:*/ { @@ -29705,7 +32551,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:*/ { @@ -29718,7 +32564,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; @@ -29729,7 +32575,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:*/ { @@ -29769,17 +32615,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; @@ -29800,22 +32646,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; @@ -29834,7 +32680,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:; @@ -29845,7 +32691,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; @@ -29853,34 +32700,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); @@ -29890,46 +32741,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; @@ -29944,11 +32835,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; @@ -29960,35 +32852,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; @@ -30009,7 +32921,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:*/ { @@ -30024,7 +32936,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:*/ { @@ -30034,7 +32946,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:*/ { @@ -30047,7 +32959,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; @@ -30058,7 +32970,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:*/ { @@ -30098,17 +33010,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; @@ -30129,22 +33041,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; @@ -30163,7 +33075,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:; @@ -30174,7 +33086,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; @@ -30182,37 +33097,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); @@ -30222,78 +33134,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; @@ -30308,12 +33188,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; @@ -30325,49 +33204,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; @@ -30388,7 +33253,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:*/ { @@ -30403,7 +33268,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:*/ { @@ -30413,7 +33278,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:*/ { @@ -30426,7 +33291,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; @@ -30437,7 +33302,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:*/ { @@ -30477,17 +33342,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; @@ -30508,22 +33373,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; @@ -30542,7 +33407,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:; @@ -30553,9 +33418,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; @@ -30563,16 +33426,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 @@ -30580,18 +33443,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); @@ -30601,62 +33463,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; @@ -30671,12 +33517,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; @@ -30701,10 +33546,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; @@ -30716,7 +33561,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; @@ -30752,7 +33597,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:*/ { @@ -30762,7 +33607,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:*/ { @@ -30775,7 +33620,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; @@ -30786,7 +33631,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:*/ { @@ -30872,7 +33717,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; @@ -30891,7 +33736,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:; @@ -30910,26 +33755,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 @@ -30940,7 +33785,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); @@ -30950,70 +33795,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; @@ -31028,11 +33881,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; @@ -31058,33 +33912,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); @@ -31092,7 +33940,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; @@ -31113,7 +33961,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:*/ { @@ -31128,7 +33976,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:*/ { @@ -31138,7 +33986,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:*/ { @@ -31151,7 +33999,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; @@ -31162,7 +34010,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:*/ { @@ -31248,7 +34096,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; @@ -31267,7 +34115,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:; @@ -31278,7 +34126,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); @@ -31289,16 +34136,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 @@ -31307,20 +34154,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); @@ -31330,101 +34174,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; @@ -31440,14 +34245,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; @@ -31455,32 +34257,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; @@ -31492,32 +34289,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; } @@ -31543,7 +34325,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:*/ { @@ -31553,7 +34335,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:*/ { @@ -31566,20 +34348,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; @@ -31587,7 +34359,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:*/ { @@ -31627,20 +34399,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; @@ -31661,55 +34430,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:; @@ -31719,9 +34474,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(); @@ -31730,36 +34483,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); @@ -31769,70 +34523,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; @@ -31847,12 +34601,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; @@ -31878,21 +34631,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); @@ -31900,7 +34665,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; @@ -31921,7 +34686,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:*/ { @@ -31936,7 +34701,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:*/ { @@ -31946,7 +34711,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:*/ { @@ -31959,7 +34724,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; @@ -31970,7 +34735,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:*/ { @@ -32056,7 +34821,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; @@ -32075,7 +34840,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:; @@ -32086,8 +34851,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; @@ -32095,37 +34862,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); @@ -32135,70 +34903,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; @@ -32213,11 +35012,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; @@ -32225,69 +35028,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; } @@ -32298,7 +35101,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:*/ { @@ -32323,7 +35126,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:*/ { @@ -32336,10 +35139,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; @@ -32347,7 +35160,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:*/ { @@ -32387,17 +35200,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; @@ -32418,41 +35234,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:; @@ -32462,11 +35292,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; @@ -32474,37 +35303,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); @@ -32514,78 +35344,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; @@ -32601,11 +35454,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; @@ -32617,49 +35473,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; @@ -32680,7 +35522,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:*/ { @@ -32695,7 +35537,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:*/ { @@ -32705,7 +35547,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:*/ { @@ -32718,7 +35560,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; @@ -32729,7 +35571,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:*/ { @@ -32769,17 +35611,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; @@ -32800,22 +35642,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; @@ -32834,7 +35676,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:; @@ -32845,9 +35687,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; @@ -32855,37 +35695,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); @@ -32895,70 +35734,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; @@ -32973,11 +35812,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; @@ -32985,7 +35825,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; @@ -33003,33 +35843,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); @@ -33037,7 +35865,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; @@ -33058,7 +35886,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:*/ { @@ -33073,7 +35901,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:*/ { @@ -33083,7 +35911,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:*/ { @@ -33096,9 +35924,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; { @@ -33107,7 +35935,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:*/ { @@ -33193,7 +36021,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; @@ -33201,8 +36029,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); } @@ -33212,7 +36040,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:; @@ -33222,11 +36050,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; @@ -33234,16 +36060,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 @@ -33264,7 +36090,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); @@ -33276,44 +36102,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]); @@ -33322,22 +36148,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; @@ -33356,7 +36182,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; @@ -33364,7 +36190,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; @@ -33382,33 +36208,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); @@ -33416,7 +36242,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; @@ -33452,7 +36278,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:*/ { @@ -33462,7 +36288,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:*/ { @@ -33475,9 +36301,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; { @@ -33486,7 +36312,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:*/ { @@ -33572,7 +36398,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; @@ -33580,8 +36406,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); } @@ -33591,7 +36417,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:; @@ -33601,7 +36427,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); @@ -33613,26 +36439,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 @@ -33643,7 +36469,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); @@ -33653,70 +36479,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; @@ -33731,11 +36565,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; @@ -33743,7 +36578,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; @@ -33761,33 +36596,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); @@ -33795,7 +36624,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; @@ -33816,7 +36645,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:*/ { @@ -33831,7 +36660,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:*/ { @@ -33841,7 +36670,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:*/ { @@ -33854,9 +36683,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; { @@ -33865,7 +36694,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:*/ { @@ -33951,7 +36780,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; @@ -33959,8 +36788,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); } @@ -33970,7 +36799,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:; @@ -33980,8 +36809,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); @@ -33992,16 +36820,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 @@ -34022,7 +36850,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); @@ -34034,44 +36862,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]); @@ -34080,22 +36908,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; @@ -34114,7 +36942,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; @@ -34140,33 +36968,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); @@ -34174,7 +37002,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; @@ -34210,7 +37038,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:*/ { @@ -34220,7 +37048,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:*/ { @@ -34233,7 +37061,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; @@ -34244,7 +37072,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:*/ { @@ -34330,7 +37158,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; @@ -34349,7 +37177,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:; @@ -34371,16 +37199,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 @@ -34401,7 +37229,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); @@ -34413,44 +37241,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]); @@ -34459,22 +37287,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; @@ -34493,7 +37321,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; @@ -34519,33 +37347,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); @@ -34553,7 +37381,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; @@ -34589,7 +37417,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:*/ { @@ -34599,7 +37427,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:*/ { @@ -34612,7 +37440,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; @@ -34623,7 +37451,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:*/ { @@ -34709,7 +37537,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; @@ -34728,7 +37556,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:; @@ -34750,16 +37578,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 @@ -34780,7 +37608,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); @@ -34792,44 +37620,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]); @@ -34838,22 +37666,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; @@ -34872,7 +37700,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; @@ -34898,33 +37726,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); @@ -34932,7 +37760,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; @@ -34968,7 +37796,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:*/ { @@ -34978,7 +37806,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:*/ { @@ -34991,7 +37819,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; @@ -35002,7 +37830,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:*/ { @@ -35088,7 +37916,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; @@ -35107,7 +37935,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:; @@ -35129,16 +37957,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 @@ -35159,7 +37987,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); @@ -35171,44 +37999,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]); @@ -35217,22 +38045,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; @@ -35251,7 +38079,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; @@ -35277,33 +38105,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); @@ -35311,7 +38139,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; @@ -35347,7 +38175,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:*/ { @@ -35357,7 +38185,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:*/ { @@ -35370,7 +38198,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; @@ -35381,7 +38209,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:*/ { @@ -35467,7 +38295,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; @@ -35486,7 +38314,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:; @@ -35508,16 +38336,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 @@ -35528,18 +38356,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); @@ -35549,86 +38376,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; @@ -35643,12 +38454,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; @@ -35674,33 +38484,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); @@ -35708,7 +38518,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; @@ -35744,7 +38554,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:*/ { @@ -35754,7 +38564,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:*/ { @@ -35767,7 +38577,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; @@ -35778,7 +38588,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:*/ { @@ -35864,7 +38674,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; @@ -35883,7 +38693,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:; @@ -35905,16 +38715,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 @@ -35935,7 +38745,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); @@ -35947,44 +38757,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]); @@ -35993,22 +38803,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; @@ -36027,7 +38837,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; @@ -36053,33 +38863,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); @@ -36087,7 +38897,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; @@ -36123,7 +38933,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:*/ { @@ -36133,7 +38943,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:*/ { @@ -36146,7 +38956,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; @@ -36157,7 +38967,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:*/ { @@ -36243,7 +39053,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; @@ -36262,7 +39072,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:; @@ -36284,16 +39094,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 @@ -36314,7 +39124,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); @@ -36326,44 +39136,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]); @@ -36372,22 +39182,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; @@ -36406,7 +39216,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; @@ -36432,33 +39242,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); @@ -36466,7 +39276,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; @@ -36502,7 +39312,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:*/ { @@ -36512,7 +39322,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:*/ { @@ -36525,7 +39335,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; @@ -36536,7 +39346,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:*/ { @@ -36622,7 +39432,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; @@ -36641,7 +39451,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:; @@ -36663,16 +39473,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 @@ -36683,17 +39493,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); @@ -36703,70 +39514,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; @@ -36781,11 +39608,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; @@ -36811,33 +39639,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); @@ -36845,7 +39673,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; @@ -36881,7 +39709,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:*/ { @@ -36891,7 +39719,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:*/ { @@ -36904,7 +39732,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; @@ -36915,7 +39743,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:*/ { @@ -37001,7 +39829,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; @@ -37020,7 +39848,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:; @@ -37042,16 +39870,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 @@ -37072,7 +39900,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); @@ -37084,44 +39912,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]); @@ -37130,22 +39958,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; @@ -37164,7 +39992,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; @@ -37190,33 +40018,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); @@ -37224,7 +40052,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; @@ -37260,7 +40088,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:*/ { @@ -37270,7 +40098,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:*/ { @@ -37283,7 +40111,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; @@ -37294,7 +40122,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:*/ { @@ -37380,7 +40208,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; @@ -37399,7 +40227,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:; @@ -37421,16 +40249,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 @@ -37451,7 +40279,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); @@ -37463,44 +40291,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]); @@ -37509,22 +40337,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; @@ -37543,7 +40371,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; @@ -37569,33 +40397,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); @@ -37603,7 +40431,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; @@ -37639,7 +40467,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:*/ { @@ -37649,7 +40477,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:*/ { @@ -37662,7 +40490,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; @@ -37673,7 +40501,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:*/ { @@ -37759,7 +40587,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; @@ -37778,7 +40606,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:; @@ -37800,16 +40628,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 @@ -37830,7 +40658,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); @@ -37842,44 +40670,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]); @@ -37888,22 +40716,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; @@ -37922,7 +40750,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; @@ -37948,33 +40776,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); @@ -37982,7 +40810,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; @@ -38018,7 +40846,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:*/ { @@ -38028,7 +40856,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:*/ { @@ -38041,7 +40869,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; @@ -38052,7 +40880,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:*/ { @@ -38138,7 +40966,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; @@ -38157,7 +40985,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:; @@ -38179,16 +41007,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 @@ -38199,18 +41027,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); @@ -38220,86 +41047,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; @@ -38314,12 +41125,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; @@ -38345,33 +41155,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); @@ -38379,7 +41189,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; @@ -38415,7 +41225,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:*/ { @@ -38425,7 +41235,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:*/ { @@ -38438,7 +41248,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; @@ -38449,7 +41259,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:*/ { @@ -38535,7 +41345,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; @@ -38554,7 +41364,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:; @@ -38576,16 +41386,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 @@ -38606,7 +41416,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); @@ -38618,44 +41428,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]); @@ -38664,22 +41474,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; @@ -38698,7 +41508,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; @@ -38724,33 +41534,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); @@ -38758,7 +41568,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; @@ -38794,7 +41604,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:*/ { @@ -38804,7 +41614,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:*/ { @@ -38817,7 +41627,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; @@ -38828,7 +41638,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:*/ { @@ -38914,7 +41724,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; @@ -38933,7 +41743,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:; @@ -38955,16 +41765,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 @@ -38985,7 +41795,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); @@ -38997,44 +41807,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]); @@ -39043,22 +41853,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; @@ -39077,7 +41887,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; @@ -39103,33 +41913,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); @@ -39137,7 +41947,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; @@ -39173,7 +41983,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:*/ { @@ -39183,7 +41993,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:*/ { @@ -39196,7 +42006,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; @@ -39207,7 +42017,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:*/ { @@ -39293,7 +42103,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; @@ -39312,7 +42122,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:; @@ -39334,16 +42144,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 @@ -39354,17 +42164,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); @@ -39374,70 +42185,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; @@ -39452,11 +42279,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; @@ -39482,33 +42310,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); @@ -39516,7 +42344,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; @@ -39552,7 +42380,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:*/ { @@ -39562,7 +42390,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:*/ { @@ -39575,7 +42403,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; @@ -39586,7 +42414,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:*/ { @@ -39672,7 +42500,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; @@ -39691,7 +42519,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:; @@ -39713,16 +42541,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 @@ -39743,7 +42571,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); @@ -39755,44 +42583,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]); @@ -39801,22 +42629,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; @@ -39835,7 +42663,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; @@ -39861,33 +42689,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); @@ -39895,7 +42723,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; @@ -39931,7 +42759,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:*/ { @@ -39941,7 +42769,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:*/ { @@ -39954,7 +42782,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; @@ -39965,7 +42793,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:*/ { @@ -40051,7 +42879,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; @@ -40070,7 +42898,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:; @@ -40092,16 +42920,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 @@ -40112,18 +42940,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); @@ -40133,86 +42960,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; @@ -40227,12 +43038,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; @@ -40258,33 +43068,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); @@ -40292,7 +43102,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; @@ -40328,7 +43138,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:*/ { @@ -40338,7 +43148,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:*/ { @@ -40351,7 +43161,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; @@ -40362,7 +43172,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:*/ { @@ -40448,7 +43258,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; @@ -40467,7 +43277,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:; @@ -40489,16 +43299,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 @@ -40509,18 +43319,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); @@ -40530,86 +43339,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; @@ -40624,12 +43417,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; @@ -40655,33 +43447,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); @@ -40689,7 +43481,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; @@ -40725,7 +43517,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:*/ { @@ -40735,7 +43527,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:*/ { @@ -40748,7 +43540,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; @@ -40759,7 +43551,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:*/ { @@ -40845,7 +43637,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; @@ -40864,7 +43656,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:; @@ -40886,16 +43678,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 @@ -40916,7 +43708,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); @@ -40928,44 +43720,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]); @@ -40974,22 +43766,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; @@ -41008,7 +43800,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; @@ -41034,33 +43826,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); @@ -41068,7 +43860,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; @@ -41104,7 +43896,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:*/ { @@ -41114,7 +43906,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:*/ { @@ -41127,7 +43919,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; @@ -41138,7 +43930,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:*/ { @@ -41224,7 +44016,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; @@ -41243,7 +44035,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:; @@ -41265,16 +44057,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 @@ -41285,17 +44077,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); @@ -41305,70 +44098,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; @@ -41383,11 +44192,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; @@ -41413,33 +44223,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); @@ -41447,7 +44257,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; @@ -41483,7 +44293,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:*/ { @@ -41493,7 +44303,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:*/ { @@ -41506,7 +44316,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; @@ -41517,7 +44327,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:*/ { @@ -41603,7 +44413,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; @@ -41622,7 +44432,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:; @@ -41644,16 +44454,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 @@ -41664,17 +44474,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); @@ -41684,70 +44495,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; @@ -41762,11 +44589,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; @@ -41792,33 +44620,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); @@ -41826,7 +44654,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; @@ -41862,7 +44690,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:*/ { @@ -41872,7 +44700,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:*/ { @@ -41885,7 +44713,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; @@ -41896,7 +44724,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:*/ { @@ -41982,7 +44810,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; @@ -42001,7 +44829,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:; @@ -42023,16 +44851,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 @@ -42053,7 +44881,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); @@ -42065,44 +44893,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]); @@ -42111,22 +44939,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; @@ -42145,7 +44973,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; @@ -42171,33 +44999,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); @@ -42205,7 +45033,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; @@ -42241,7 +45069,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:*/ { @@ -42251,7 +45079,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:*/ { @@ -42264,7 +45092,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; @@ -42275,7 +45103,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:*/ { @@ -42361,7 +45189,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; @@ -42380,7 +45208,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:; @@ -42402,16 +45230,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 @@ -42432,7 +45260,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); @@ -42444,44 +45272,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]); @@ -42490,22 +45318,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; @@ -42524,7 +45352,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; @@ -42550,33 +45378,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); @@ -42584,7 +45412,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; @@ -42620,7 +45448,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:*/ { @@ -42630,7 +45458,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:*/ { @@ -42643,7 +45471,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; @@ -42654,7 +45482,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:*/ { @@ -42740,7 +45568,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; @@ -42759,7 +45587,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:; @@ -42781,16 +45609,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 @@ -42811,7 +45639,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); @@ -42823,44 +45651,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]); @@ -42869,22 +45697,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; @@ -42903,7 +45731,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; @@ -42929,33 +45757,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); @@ -42963,7 +45791,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; @@ -42999,7 +45827,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:*/ { @@ -43009,7 +45837,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:*/ { @@ -43022,7 +45850,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; @@ -43033,7 +45861,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:*/ { @@ -43119,7 +45947,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; @@ -43138,7 +45966,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:; @@ -43160,16 +45988,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 @@ -43190,7 +46018,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); @@ -43202,44 +46030,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]); @@ -43248,22 +46076,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; @@ -43282,7 +46110,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; @@ -43308,33 +46136,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); @@ -43342,7 +46170,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; @@ -43378,7 +46206,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:*/ { @@ -43388,7 +46216,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:*/ { @@ -43401,7 +46229,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; @@ -43412,7 +46240,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:*/ { @@ -43498,7 +46326,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; @@ -43517,7 +46345,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:; @@ -43539,16 +46367,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 @@ -43569,7 +46397,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); @@ -43581,44 +46409,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]); @@ -43627,22 +46455,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; @@ -43661,7 +46489,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; @@ -43687,33 +46515,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); @@ -43721,7 +46549,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; @@ -43757,7 +46585,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:*/ { @@ -43767,7 +46595,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:*/ { @@ -43780,7 +46608,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; @@ -43791,7 +46619,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:*/ { @@ -43877,7 +46705,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; @@ -43896,7 +46724,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:; @@ -43918,16 +46746,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 @@ -43948,7 +46776,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); @@ -43960,44 +46788,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]); @@ -44006,22 +46834,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; @@ -44040,7 +46868,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; @@ -44066,33 +46894,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); @@ -44100,7 +46928,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; @@ -44136,7 +46964,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:*/ { @@ -44146,7 +46974,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:*/ { @@ -44159,7 +46987,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; @@ -44170,7 +46998,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:*/ { @@ -44256,7 +47084,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; @@ -44275,7 +47103,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:; @@ -44297,16 +47125,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 @@ -44327,7 +47155,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); @@ -44339,44 +47167,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]); @@ -44385,22 +47213,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; @@ -44419,7 +47247,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; @@ -44445,33 +47273,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); @@ -44479,7 +47307,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; @@ -44515,7 +47343,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:*/ { @@ -44525,7 +47353,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:*/ { @@ -44538,7 +47366,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; @@ -44549,7 +47377,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:*/ { @@ -44635,7 +47463,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; @@ -44654,7 +47482,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:; @@ -44676,16 +47504,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 @@ -44706,7 +47534,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); @@ -44718,44 +47546,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]); @@ -44764,22 +47592,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; @@ -44798,7 +47626,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; @@ -44824,33 +47652,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); @@ -44858,7 +47686,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; @@ -44894,7 +47722,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:*/ { @@ -44904,7 +47732,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:*/ { @@ -44917,7 +47745,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; @@ -44928,7 +47756,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:*/ { @@ -45014,7 +47842,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; @@ -45033,7 +47861,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:; @@ -45055,16 +47883,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 @@ -45085,7 +47913,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); @@ -45097,44 +47925,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]); @@ -45143,22 +47971,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; @@ -45177,7 +48005,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; @@ -45203,33 +48031,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); @@ -45237,7 +48065,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; @@ -45273,7 +48101,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:*/ { @@ -45283,7 +48111,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:*/ { @@ -45296,7 +48124,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; @@ -45307,7 +48135,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:*/ { @@ -45393,7 +48221,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; @@ -45412,7 +48240,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:; @@ -45434,16 +48262,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 @@ -45464,7 +48292,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); @@ -45476,44 +48304,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]); @@ -45522,22 +48350,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; @@ -45556,7 +48384,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; @@ -45582,33 +48410,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); @@ -45616,7 +48444,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; @@ -45652,7 +48480,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:*/ { @@ -45662,7 +48490,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:*/ { @@ -45675,7 +48503,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; @@ -45686,7 +48514,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:*/ { @@ -45772,7 +48600,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; @@ -45791,7 +48619,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:; @@ -45813,16 +48641,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 @@ -45843,7 +48671,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); @@ -45855,44 +48683,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]); @@ -45901,22 +48729,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; @@ -45935,7 +48763,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; @@ -45961,33 +48789,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); @@ -45995,7 +48823,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; @@ -46031,7 +48859,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:*/ { @@ -46041,7 +48869,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:*/ { @@ -46054,7 +48882,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; @@ -46065,7 +48893,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:*/ { @@ -46151,7 +48979,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; @@ -46170,7 +48998,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:; @@ -46192,16 +49020,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 @@ -46222,7 +49050,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); @@ -46234,44 +49062,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]); @@ -46280,22 +49108,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; @@ -46314,7 +49142,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; @@ -46340,33 +49168,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); @@ -46374,7 +49202,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; @@ -46410,7 +49238,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:*/ { @@ -46420,7 +49248,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:*/ { @@ -46433,7 +49261,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; @@ -46444,7 +49272,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:*/ { @@ -46530,7 +49358,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; @@ -46549,7 +49377,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:; @@ -46571,16 +49399,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 @@ -46601,7 +49429,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); @@ -46613,44 +49441,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]); @@ -46659,22 +49487,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; @@ -46693,7 +49521,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; @@ -46719,33 +49547,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); @@ -46753,7 +49581,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; @@ -46789,7 +49617,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:*/ { @@ -46799,7 +49627,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:*/ { @@ -46812,7 +49640,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; @@ -46823,7 +49651,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:*/ { @@ -46909,7 +49737,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; @@ -46928,7 +49756,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:; @@ -46950,16 +49778,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 @@ -46980,7 +49808,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); @@ -46992,44 +49820,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]); @@ -47038,22 +49866,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; @@ -47072,7 +49900,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; @@ -47098,33 +49926,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); @@ -47132,7 +49960,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; @@ -47168,7 +49996,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:*/ { @@ -47178,7 +50006,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:*/ { @@ -47191,7 +50019,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; @@ -47202,7 +50030,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:*/ { @@ -47288,7 +50116,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; @@ -47307,7 +50135,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:; @@ -47329,16 +50157,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 @@ -47359,7 +50187,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); @@ -47371,44 +50199,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]); @@ -47417,22 +50245,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; @@ -47451,7 +50279,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; @@ -47477,33 +50305,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); @@ -47511,7 +50339,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; @@ -47547,7 +50375,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:*/ { @@ -47557,7 +50385,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:*/ { @@ -47570,7 +50398,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; @@ -47581,7 +50409,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:*/ { @@ -47667,7 +50495,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; @@ -47686,7 +50514,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:; @@ -47708,16 +50536,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 @@ -47738,7 +50566,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); @@ -47750,44 +50578,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]); @@ -47796,22 +50624,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; @@ -47830,7 +50658,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; @@ -47856,33 +50684,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); @@ -47890,7 +50718,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; @@ -47926,7 +50754,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:*/ { @@ -47936,7 +50764,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:*/ { @@ -47949,7 +50777,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; @@ -47960,7 +50788,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:*/ { @@ -48046,7 +50874,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; @@ -48065,7 +50893,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:; @@ -48087,16 +50915,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 @@ -48117,7 +50945,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); @@ -48129,44 +50957,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]); @@ -48175,22 +51003,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; @@ -48209,7 +51037,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; @@ -48235,33 +51063,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); @@ -48269,7 +51097,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; @@ -48305,7 +51133,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:*/ { @@ -48315,7 +51143,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:*/ { @@ -48328,7 +51156,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; @@ -48339,7 +51167,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:*/ { @@ -48425,7 +51253,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; @@ -48444,7 +51272,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:; @@ -48466,16 +51294,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 @@ -48486,18 +51314,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); @@ -48507,86 +51334,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; @@ -48601,12 +51412,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; @@ -48632,33 +51442,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); @@ -48666,7 +51476,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; @@ -48702,7 +51512,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:*/ { @@ -48712,7 +51522,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:*/ { @@ -48725,7 +51535,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; @@ -48736,7 +51546,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:*/ { @@ -48822,7 +51632,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; @@ -48841,7 +51651,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:; @@ -48863,16 +51673,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 @@ -48883,18 +51693,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); @@ -48904,86 +51713,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; @@ -48998,12 +51791,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; @@ -49029,33 +51821,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); @@ -49063,7 +51855,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; @@ -49099,7 +51891,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:*/ { @@ -49109,7 +51901,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:*/ { @@ -49122,7 +51914,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; @@ -49133,7 +51925,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:*/ { @@ -49219,7 +52011,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; @@ -49238,7 +52030,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:; @@ -49260,16 +52052,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 @@ -49280,18 +52072,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); @@ -49301,86 +52092,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; @@ -49395,12 +52170,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; @@ -49426,33 +52200,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); @@ -49460,7 +52234,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; @@ -49496,7 +52270,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:*/ { @@ -49506,7 +52280,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:*/ { @@ -49519,7 +52293,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; @@ -49530,7 +52304,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:*/ { @@ -49616,7 +52390,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; @@ -49635,7 +52409,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:; @@ -49657,16 +52431,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 @@ -49677,17 +52451,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); @@ -49697,70 +52472,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; @@ -49775,11 +52566,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; @@ -49805,33 +52597,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); @@ -49839,7 +52631,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; @@ -49875,7 +52667,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:*/ { @@ -49885,7 +52677,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:*/ { @@ -49898,7 +52690,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; @@ -49909,7 +52701,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:*/ { @@ -49995,7 +52787,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; @@ -50014,7 +52806,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:; @@ -50036,16 +52828,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 @@ -50056,17 +52848,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); @@ -50076,70 +52869,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; @@ -50154,11 +52963,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; @@ -50184,33 +52994,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); @@ -50218,7 +53028,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; @@ -50254,7 +53064,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:*/ { @@ -50264,7 +53074,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:*/ { @@ -50277,7 +53087,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; @@ -50288,7 +53098,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:*/ { @@ -50374,7 +53184,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; @@ -50393,7 +53203,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:; @@ -50415,16 +53225,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 @@ -50435,17 +53245,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); @@ -50455,70 +53266,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; @@ -50533,11 +53360,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; @@ -50563,33 +53391,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); @@ -50597,7 +53425,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; @@ -50633,7 +53461,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:*/ { @@ -50643,7 +53471,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:*/ { @@ -50656,7 +53484,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; @@ -50667,7 +53495,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:*/ { @@ -50753,7 +53581,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; @@ -50772,7 +53600,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:; @@ -50794,16 +53622,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 @@ -50824,7 +53652,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); @@ -50836,44 +53664,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]); @@ -50882,22 +53710,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; @@ -50916,7 +53744,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; @@ -50942,33 +53770,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); @@ -50976,7 +53804,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; @@ -51012,7 +53840,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:*/ { @@ -51022,7 +53850,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:*/ { @@ -51035,7 +53863,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; @@ -51046,7 +53874,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:*/ { @@ -51132,7 +53960,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; @@ -51151,7 +53979,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:; @@ -51173,16 +54001,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 @@ -51203,7 +54031,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); @@ -51215,44 +54043,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]); @@ -51261,22 +54089,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; @@ -51295,7 +54123,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; @@ -51321,33 +54149,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); @@ -51355,7 +54183,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; @@ -51391,7 +54219,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:*/ { @@ -51401,7 +54229,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:*/ { @@ -51414,7 +54242,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; @@ -51425,7 +54253,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:*/ { @@ -51511,7 +54339,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; @@ -51530,7 +54358,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:; @@ -51552,16 +54380,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 @@ -51582,7 +54410,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); @@ -51594,44 +54422,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]); @@ -51640,22 +54468,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; @@ -51674,7 +54502,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; @@ -51700,33 +54528,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); @@ -51734,7 +54562,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; @@ -51770,7 +54598,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:*/ { @@ -51780,7 +54608,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:*/ { @@ -51793,7 +54621,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; @@ -51804,7 +54632,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:*/ { @@ -51890,7 +54718,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; @@ -51909,7 +54737,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:; @@ -51931,16 +54759,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 @@ -51961,7 +54789,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); @@ -51973,44 +54801,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]); @@ -52019,22 +54847,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; @@ -52053,7 +54881,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; @@ -52079,33 +54907,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); @@ -52113,7 +54941,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; @@ -52149,7 +54977,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:*/ { @@ -52159,7 +54987,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:*/ { @@ -52172,7 +55000,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; @@ -52183,7 +55011,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:*/ { @@ -52269,7 +55097,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; @@ -52288,7 +55116,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:; @@ -52310,16 +55138,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 @@ -52340,7 +55168,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); @@ -52352,44 +55180,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]); @@ -52398,22 +55226,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; @@ -52432,7 +55260,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; @@ -52458,33 +55286,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); @@ -52492,7 +55320,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; @@ -52528,7 +55356,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:*/ { @@ -52538,7 +55366,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:*/ { @@ -52551,7 +55379,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; @@ -52562,7 +55390,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:*/ { @@ -52648,7 +55476,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; @@ -52667,7 +55495,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:; @@ -52689,16 +55517,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 @@ -52719,7 +55547,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); @@ -52731,44 +55559,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]); @@ -52777,22 +55605,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; @@ -52811,7 +55639,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; @@ -52837,33 +55665,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); @@ -52871,7 +55699,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; @@ -52907,7 +55735,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:*/ { @@ -52917,7 +55745,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:*/ { @@ -52930,7 +55758,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; @@ -52941,7 +55769,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:*/ { @@ -53027,7 +55855,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; @@ -53046,7 +55874,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:; @@ -53068,16 +55896,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 @@ -53098,7 +55926,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); @@ -53110,44 +55938,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]); @@ -53156,22 +55984,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; @@ -53190,7 +56018,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; @@ -53216,33 +56044,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); @@ -53250,7 +56078,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; @@ -53286,7 +56114,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:*/ { @@ -53296,7 +56124,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:*/ { @@ -53309,7 +56137,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; @@ -53320,7 +56148,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:*/ { @@ -53406,7 +56234,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; @@ -53425,7 +56253,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:; @@ -53447,16 +56275,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 @@ -53477,7 +56305,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); @@ -53489,44 +56317,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]); @@ -53535,22 +56363,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; @@ -53569,7 +56397,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; @@ -53595,33 +56423,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); @@ -53629,7 +56457,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; @@ -53665,7 +56493,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:*/ { @@ -53675,7 +56503,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:*/ { @@ -53688,7 +56516,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; @@ -53699,7 +56527,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:*/ { @@ -53785,7 +56613,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; @@ -53804,7 +56632,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:; @@ -53826,16 +56654,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 @@ -53856,7 +56684,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); @@ -53868,44 +56696,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]); @@ -53914,22 +56742,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; @@ -53948,7 +56776,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; @@ -53974,33 +56802,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); @@ -54008,7 +56836,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; @@ -54044,7 +56872,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:*/ { @@ -54054,7 +56882,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:*/ { @@ -54067,7 +56895,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; @@ -54078,7 +56906,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:*/ { @@ -54164,7 +56992,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; @@ -54183,7 +57011,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:; @@ -54205,16 +57033,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 @@ -54235,7 +57063,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); @@ -54247,44 +57075,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]); @@ -54293,22 +57121,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; @@ -54327,7 +57155,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; @@ -54353,33 +57181,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); @@ -54387,7 +57215,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; @@ -54423,7 +57251,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:*/ { @@ -54433,7 +57261,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:*/ { @@ -54446,7 +57274,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; @@ -54457,7 +57285,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:*/ { @@ -54543,7 +57371,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; @@ -54562,7 +57390,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:; @@ -54584,16 +57412,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 @@ -54614,7 +57442,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); @@ -54626,44 +57454,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]); @@ -54672,22 +57500,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; @@ -54706,7 +57534,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; @@ -54732,33 +57560,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); @@ -54766,7 +57594,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; @@ -54802,7 +57630,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:*/ { @@ -54812,7 +57640,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:*/ { @@ -54825,7 +57653,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; @@ -54836,7 +57664,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:*/ { @@ -54922,7 +57750,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; @@ -54941,7 +57769,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:; @@ -54963,16 +57791,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 @@ -54993,7 +57821,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); @@ -55005,44 +57833,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]); @@ -55051,22 +57879,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; @@ -55085,7 +57913,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; @@ -55111,33 +57939,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); @@ -55145,7 +57973,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; @@ -55181,7 +58009,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:*/ { @@ -55191,7 +58019,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:*/ { @@ -55204,7 +58032,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; @@ -55215,7 +58043,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:*/ { @@ -55301,7 +58129,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; @@ -55320,7 +58148,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:; @@ -55342,16 +58170,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 @@ -55372,7 +58200,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); @@ -55384,44 +58212,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]); @@ -55430,22 +58258,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; @@ -55464,7 +58292,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; @@ -55490,33 +58318,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); @@ -55524,7 +58352,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; @@ -55560,7 +58388,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:*/ { @@ -55570,7 +58398,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:*/ { @@ -55583,7 +58411,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; @@ -55594,7 +58422,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:*/ { @@ -55680,7 +58508,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; @@ -55699,7 +58527,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:; @@ -55721,16 +58549,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 @@ -55751,7 +58579,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); @@ -55763,44 +58591,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]); @@ -55809,22 +58637,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; @@ -55843,7 +58671,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; @@ -55869,33 +58697,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); @@ -55903,7 +58731,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; @@ -55939,7 +58767,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:*/ { @@ -55949,7 +58777,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:*/ { @@ -55962,7 +58790,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; @@ -55973,7 +58801,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:*/ { @@ -56059,7 +58887,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; @@ -56078,7 +58906,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:; @@ -56100,34 +58928,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); @@ -56137,46 +58968,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; @@ -56195,7 +59050,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; @@ -56203,39 +59058,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; @@ -56256,7 +59131,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:*/ { @@ -56271,7 +59146,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:*/ { @@ -56281,7 +59156,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:*/ { @@ -56294,9 +59169,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; { @@ -56305,7 +59180,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:*/ { @@ -56345,17 +59220,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; @@ -56376,22 +59251,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; @@ -56399,8 +59274,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); } @@ -56410,7 +59285,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:; @@ -56420,8 +59295,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; @@ -56429,38 +59307,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); @@ -56470,86 +59347,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; @@ -56564,12 +59425,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; @@ -56577,7 +59437,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; @@ -56595,33 +59455,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); @@ -56629,7 +59489,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; @@ -56650,7 +59510,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:*/ { @@ -56665,7 +59525,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:*/ { @@ -56675,7 +59535,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:*/ { @@ -56688,9 +59548,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; { @@ -56699,7 +59559,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:*/ { @@ -56785,7 +59645,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; @@ -56793,8 +59653,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); } @@ -56804,7 +59664,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:; @@ -56814,11 +59674,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; @@ -56826,35 +59686,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); @@ -56864,62 +59726,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; @@ -56934,12 +59804,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; @@ -56947,39 +59816,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; @@ -57000,7 +59889,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:*/ { @@ -57015,7 +59904,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:*/ { @@ -57025,7 +59914,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:*/ { @@ -57038,9 +59927,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; { @@ -57049,7 +59938,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:*/ { @@ -57089,17 +59978,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; @@ -57120,22 +60009,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; @@ -57143,8 +60032,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); } @@ -57154,7 +60043,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:; @@ -57164,8 +60053,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; @@ -57173,16 +60065,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 @@ -57190,18 +60082,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); @@ -57211,62 +60102,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; @@ -57281,12 +60156,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; @@ -57311,10 +60185,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; @@ -57326,7 +60200,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; @@ -57362,7 +60236,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:*/ { @@ -57372,7 +60246,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:*/ { @@ -57385,7 +60259,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; @@ -57396,7 +60270,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:*/ { @@ -57482,7 +60356,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; @@ -57501,7 +60375,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:; @@ -57520,16 +60394,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 @@ -57537,20 +60411,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); @@ -57560,88 +60432,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; @@ -57657,13 +60503,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; @@ -57688,10 +60532,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; @@ -57703,7 +60547,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; @@ -57739,7 +60583,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:*/ { @@ -57749,7 +60593,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:*/ { @@ -57762,7 +60606,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; @@ -57773,7 +60617,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:*/ { @@ -57859,7 +60703,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; @@ -57878,7 +60722,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:; @@ -57897,36 +60741,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); @@ -57936,70 +60781,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; @@ -58019,7 +60872,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; @@ -58045,21 +60898,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); @@ -58067,7 +60926,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; @@ -58088,7 +60947,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:*/ { @@ -58103,7 +60962,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:*/ { @@ -58113,7 +60972,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:*/ { @@ -58126,7 +60985,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; @@ -58137,7 +60996,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:*/ { @@ -58223,7 +61082,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; @@ -58242,7 +61101,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:; @@ -58253,8 +61112,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; @@ -58262,34 +61122,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); @@ -58299,46 +61162,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; @@ -58353,11 +61248,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; @@ -58369,35 +61265,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; @@ -58418,7 +61328,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:*/ { @@ -58433,7 +61343,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:*/ { @@ -58443,7 +61353,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:*/ { @@ -58456,7 +61366,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; @@ -58467,7 +61377,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:*/ { @@ -58507,17 +61417,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; @@ -58538,22 +61448,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; @@ -58572,7 +61482,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:; @@ -58583,7 +61493,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; @@ -58591,34 +61503,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); @@ -58628,46 +61545,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; @@ -58682,11 +61657,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; @@ -58694,49 +61672,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; } @@ -58747,7 +61752,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:*/ { @@ -58762,7 +61767,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:*/ { @@ -58772,7 +61777,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:*/ { @@ -58785,10 +61790,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; @@ -58796,7 +61806,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:*/ { @@ -58836,17 +61846,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; @@ -58867,41 +61879,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:; @@ -58911,8 +61933,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; @@ -58920,34 +61945,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); @@ -58957,46 +61986,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; @@ -59011,11 +62080,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; @@ -59027,35 +62097,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; @@ -59076,7 +62166,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:*/ { @@ -59091,7 +62181,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:*/ { @@ -59101,7 +62191,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:*/ { @@ -59114,7 +62204,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; @@ -59125,7 +62215,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:*/ { @@ -59165,17 +62255,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; @@ -59196,22 +62286,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; @@ -59230,7 +62320,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:; @@ -59241,7 +62331,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; @@ -59249,37 +62342,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); @@ -59289,83 +62380,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; @@ -59381,12 +62451,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; @@ -59398,43 +62467,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; @@ -59455,7 +62516,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:*/ { @@ -59470,7 +62531,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:*/ { @@ -59480,7 +62541,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:*/ { @@ -59493,7 +62554,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; @@ -59504,7 +62565,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:*/ { @@ -59544,17 +62605,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; @@ -59575,22 +62636,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; @@ -59609,7 +62670,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:; @@ -59620,8 +62681,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; @@ -59629,16 +62689,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 @@ -59657,7 +62717,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); @@ -59669,60 +62729,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; @@ -59742,7 +62802,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; @@ -59767,10 +62827,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; @@ -59782,7 +62842,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; @@ -59818,7 +62878,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:*/ { @@ -59828,7 +62888,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:*/ { @@ -59841,7 +62901,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; @@ -59852,7 +62912,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:*/ { @@ -59938,7 +62998,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; @@ -59957,7 +63017,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:; @@ -59976,35 +63036,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); @@ -60014,54 +63076,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; @@ -60076,11 +63172,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; @@ -60092,43 +63191,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; @@ -60149,7 +63240,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:*/ { @@ -60164,7 +63255,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:*/ { @@ -60174,7 +63265,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:*/ { @@ -60187,7 +63278,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; @@ -60198,7 +63289,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:*/ { @@ -60238,17 +63329,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; @@ -60269,22 +63360,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; @@ -60303,7 +63394,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:; @@ -60314,8 +63405,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; @@ -60323,24 +63413,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; @@ -60352,7 +63442,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); @@ -60362,70 +63452,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; @@ -60445,7 +63535,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; @@ -60453,44 +63543,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); @@ -60498,32 +63583,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; } @@ -60534,7 +63604,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:*/ { @@ -60549,7 +63619,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:*/ { @@ -60559,7 +63629,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:*/ { @@ -60572,20 +63642,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; @@ -60593,7 +63653,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:*/ { @@ -60633,20 +63693,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; @@ -60667,55 +63724,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:; @@ -60725,11 +63768,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; @@ -60737,16 +63778,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 @@ -60754,18 +63795,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); @@ -60775,62 +63815,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; @@ -60845,12 +63869,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; @@ -60875,10 +63898,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; @@ -60890,7 +63913,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; @@ -60926,7 +63949,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:*/ { @@ -60936,7 +63959,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:*/ { @@ -60949,7 +63972,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; @@ -60960,7 +63983,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:*/ { @@ -61046,7 +64069,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; @@ -61065,7 +64088,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:; @@ -61084,37 +64107,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); @@ -61124,78 +64144,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; @@ -61210,12 +64198,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; @@ -61227,49 +64214,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; @@ -61290,7 +64263,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:*/ { @@ -61305,7 +64278,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:*/ { @@ -61315,7 +64288,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:*/ { @@ -61328,7 +64301,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; @@ -61339,7 +64312,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:*/ { @@ -61379,17 +64352,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; @@ -61410,22 +64383,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; @@ -61444,7 +64417,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:; @@ -61455,9 +64428,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; @@ -61465,36 +64436,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); @@ -61504,70 +64476,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; @@ -61583,11 +64573,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; @@ -61599,43 +64591,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; @@ -61656,7 +64640,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:*/ { @@ -61671,7 +64655,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:*/ { @@ -61681,7 +64665,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:*/ { @@ -61694,7 +64678,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; @@ -61705,7 +64689,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:*/ { @@ -61745,17 +64729,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; @@ -61776,22 +64760,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; @@ -61810,7 +64794,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:; @@ -61821,8 +64805,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; @@ -61830,16 +64813,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 @@ -61858,7 +64841,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); @@ -61870,60 +64853,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; @@ -61943,7 +64926,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; @@ -61968,10 +64951,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; @@ -61983,7 +64966,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; @@ -62019,7 +65002,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:*/ { @@ -62029,7 +65012,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:*/ { @@ -62042,7 +65025,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; @@ -62053,7 +65036,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:*/ { @@ -62139,7 +65122,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; @@ -62158,7 +65141,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:; @@ -62177,16 +65160,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 @@ -62194,18 +65177,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); @@ -62215,62 +65197,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; @@ -62285,12 +65251,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; @@ -62315,10 +65280,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; @@ -62330,7 +65295,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; @@ -62366,7 +65331,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:*/ { @@ -62376,7 +65341,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:*/ { @@ -62389,7 +65354,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; @@ -62400,7 +65365,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:*/ { @@ -62486,7 +65451,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; @@ -62505,7 +65470,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:; @@ -62524,16 +65489,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 @@ -62542,8 +65507,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 @@ -62554,7 +65519,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); @@ -62564,78 +65529,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; @@ -62651,11 +65621,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; @@ -62663,48 +65634,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); @@ -62712,27 +65674,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; } @@ -62743,7 +65695,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:*/ { @@ -62758,7 +65710,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:*/ { @@ -62768,7 +65720,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:*/ { @@ -62781,15 +65733,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; @@ -62797,7 +65744,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:*/ { @@ -62837,19 +65784,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; @@ -62870,51 +65815,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:; @@ -62924,11 +65859,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; @@ -62936,16 +65869,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 @@ -62953,17 +65886,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); @@ -62973,46 +65907,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; @@ -63027,11 +65977,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; @@ -63056,10 +66007,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; @@ -63071,7 +66022,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; @@ -63107,7 +66058,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:*/ { @@ -63117,7 +66068,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:*/ { @@ -63130,7 +66081,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; @@ -63141,7 +66092,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:*/ { @@ -63227,7 +66178,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; @@ -63246,7 +66197,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:; @@ -63265,34 +66216,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); @@ -63302,46 +66254,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; @@ -63360,7 +66320,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; @@ -63372,35 +66332,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; @@ -63421,7 +66389,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:*/ { @@ -63436,7 +66404,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:*/ { @@ -63446,7 +66414,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:*/ { @@ -63459,7 +66427,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; @@ -63470,7 +66438,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:*/ { @@ -63510,17 +66478,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; @@ -63541,22 +66509,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; @@ -63575,7 +66543,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:; @@ -63586,7 +66554,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; @@ -63594,35 +66563,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); @@ -63632,62 +66602,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; @@ -63707,7 +66685,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; @@ -63715,49 +66693,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; } @@ -63768,7 +66774,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:*/ { @@ -63783,7 +66789,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:*/ { @@ -63793,7 +66799,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:*/ { @@ -63806,10 +66812,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; @@ -63817,7 +66833,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:*/ { @@ -63857,17 +66873,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; @@ -63888,41 +66907,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:; @@ -63932,8 +66965,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; @@ -63941,37 +66977,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); @@ -63981,83 +67018,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; @@ -64074,11 +67129,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; @@ -64086,70 +67143,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; } @@ -64160,7 +67196,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:*/ { @@ -64175,7 +67211,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:*/ { @@ -64185,7 +67221,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:*/ { @@ -64198,15 +67234,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; @@ -64214,7 +67245,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:*/ { @@ -64254,19 +67285,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; @@ -64287,51 +67316,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:; @@ -64341,10 +67360,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; @@ -64352,37 +67369,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); @@ -64392,70 +67407,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; @@ -64470,11 +67477,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; @@ -64482,96 +67490,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; } @@ -64582,7 +67543,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:*/ { @@ -64597,7 +67558,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:*/ { @@ -64607,7 +67568,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:*/ { @@ -64620,25 +67581,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; @@ -64646,7 +67592,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:*/ { @@ -64686,21 +67632,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; @@ -64721,59 +67663,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:; @@ -64783,14 +67707,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; @@ -64798,35 +67716,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); @@ -64836,62 +67756,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; @@ -64911,7 +67847,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; @@ -64923,35 +67859,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; @@ -64972,7 +67922,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:*/ { @@ -64987,7 +67937,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:*/ { @@ -64997,7 +67947,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:*/ { @@ -65010,7 +67960,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; @@ -65021,7 +67971,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:*/ { @@ -65061,17 +68011,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; @@ -65092,22 +68042,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; @@ -65126,7 +68076,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:; @@ -65137,7 +68087,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; @@ -65145,34 +68097,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); @@ -65182,46 +68136,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; @@ -65236,11 +68214,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; @@ -65252,35 +68231,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; @@ -65301,7 +68288,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:*/ { @@ -65316,7 +68303,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:*/ { @@ -65326,7 +68313,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:*/ { @@ -65339,7 +68326,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; @@ -65350,7 +68337,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:*/ { @@ -65390,17 +68377,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; @@ -65421,22 +68408,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; @@ -65455,7 +68442,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:; @@ -65466,7 +68453,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; @@ -65474,16 +68462,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 @@ -65491,17 +68479,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); @@ -65511,46 +68500,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; @@ -65565,11 +68570,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; @@ -65594,10 +68600,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; @@ -65609,7 +68615,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; @@ -65645,7 +68651,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:*/ { @@ -65655,7 +68661,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:*/ { @@ -65668,7 +68674,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; @@ -65679,7 +68685,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:*/ { @@ -65765,7 +68771,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; @@ -65784,7 +68790,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:; @@ -65803,34 +68809,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); @@ -65840,46 +68850,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; @@ -65894,11 +68949,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; @@ -65906,62 +68963,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; } @@ -65972,7 +69030,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:*/ { @@ -65987,7 +69045,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:*/ { @@ -65997,7 +69055,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:*/ { @@ -66010,15 +69068,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; @@ -66026,7 +69079,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:*/ { @@ -66066,19 +69119,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; @@ -66099,51 +69150,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:; @@ -66153,9 +69194,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; @@ -66163,16 +69205,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 @@ -66180,17 +69222,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); @@ -66200,46 +69243,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; @@ -66254,11 +69313,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; @@ -66266,30 +69326,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; @@ -66301,27 +69358,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; } @@ -66347,7 +69394,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:*/ { @@ -66357,7 +69404,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:*/ { @@ -66370,15 +69417,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; @@ -66386,7 +69428,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:*/ { @@ -66426,19 +69468,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; @@ -66459,51 +69499,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:; @@ -66513,8 +69543,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(); @@ -66523,34 +69552,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); @@ -66560,46 +69592,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; @@ -66614,11 +69678,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; @@ -66626,49 +69691,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; } @@ -66679,7 +69771,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:*/ { @@ -66694,7 +69786,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:*/ { @@ -66704,7 +69796,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:*/ { @@ -66717,10 +69809,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; @@ -66728,7 +69825,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:*/ { @@ -66768,17 +69865,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; @@ -66799,41 +69898,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:; @@ -66843,8 +69952,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; @@ -66852,16 +69964,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 @@ -66879,7 +69991,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); @@ -66891,44 +70003,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; @@ -66947,7 +70059,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; @@ -66955,7 +70067,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; @@ -66972,10 +70084,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; @@ -66987,7 +70099,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; @@ -67023,7 +70135,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:*/ { @@ -67033,7 +70145,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:*/ { @@ -67046,9 +70158,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; { @@ -67057,7 +70169,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:*/ { @@ -67143,7 +70255,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; @@ -67151,8 +70263,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); } @@ -67162,7 +70274,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:; @@ -67172,7 +70284,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(); @@ -67181,24 +70293,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; @@ -67210,7 +70322,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); @@ -67220,70 +70332,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; @@ -67303,7 +70415,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; @@ -67311,39 +70423,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); @@ -67351,17 +70466,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; } @@ -67372,7 +70497,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:*/ { @@ -67387,7 +70512,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:*/ { @@ -67397,7 +70522,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:*/ { @@ -67410,10 +70535,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; @@ -67421,7 +70551,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:*/ { @@ -67461,17 +70591,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; @@ -67492,41 +70624,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:; @@ -67536,9 +70678,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; @@ -67546,16 +70689,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 @@ -67563,18 +70706,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); @@ -67584,62 +70726,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; @@ -67654,12 +70780,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; @@ -67684,10 +70809,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; @@ -67699,7 +70824,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; @@ -67735,7 +70860,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:*/ { @@ -67745,7 +70870,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:*/ { @@ -67758,7 +70883,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; @@ -67769,7 +70894,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:*/ { @@ -67855,7 +70980,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; @@ -67874,7 +70999,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:; @@ -67893,39 +71018,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); @@ -67935,104 +71056,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; @@ -68048,13 +71127,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; @@ -68062,83 +71139,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; } @@ -68149,7 +71192,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:*/ { @@ -68164,7 +71207,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:*/ { @@ -68174,7 +71217,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:*/ { @@ -68187,20 +71230,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; @@ -68208,7 +71241,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:*/ { @@ -68248,20 +71281,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; @@ -68282,55 +71312,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:; @@ -68340,12 +71356,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; @@ -68353,16 +71365,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 @@ -68371,23 +71383,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); @@ -68397,130 +71405,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; @@ -68537,14 +71498,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; @@ -68552,9 +71510,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; @@ -68562,40 +71519,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); @@ -68603,32 +71553,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; } @@ -68639,7 +71584,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:*/ { @@ -68654,7 +71599,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:*/ { @@ -68664,7 +71609,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:*/ { @@ -68677,20 +71622,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; @@ -68698,7 +71638,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:*/ { @@ -68738,20 +71678,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; @@ -68772,45 +71711,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; @@ -68819,8 +71755,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:; @@ -68830,12 +71765,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; @@ -68843,35 +71776,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); @@ -68881,62 +71815,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; @@ -68956,7 +71898,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; @@ -68968,35 +71910,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; @@ -69017,7 +71967,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:*/ { @@ -69032,7 +71982,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:*/ { @@ -69042,7 +71992,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:*/ { @@ -69055,7 +72005,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; @@ -69066,7 +72016,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:*/ { @@ -69106,17 +72056,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; @@ -69137,22 +72087,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; @@ -69171,7 +72121,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:; @@ -69182,7 +72132,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; @@ -69190,35 +72141,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); @@ -69228,62 +72181,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; @@ -69298,12 +72259,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; @@ -69311,49 +72271,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; } @@ -69364,7 +72371,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:*/ { @@ -69379,7 +72386,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:*/ { @@ -69389,7 +72396,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:*/ { @@ -69402,10 +72409,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; @@ -69413,7 +72435,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:*/ { @@ -69453,17 +72475,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; @@ -69484,41 +72510,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:; @@ -69528,8 +72572,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; @@ -69537,16 +72587,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 @@ -69565,7 +72615,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); @@ -69577,60 +72627,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; @@ -69650,7 +72700,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; @@ -69675,10 +72725,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; @@ -69690,7 +72740,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; @@ -69726,7 +72776,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:*/ { @@ -69736,7 +72786,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:*/ { @@ -69749,7 +72799,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; @@ -69760,7 +72810,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:*/ { @@ -69846,7 +72896,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; @@ -69865,7 +72915,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:; @@ -69884,16 +72934,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 @@ -69901,18 +72951,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); @@ -69922,62 +72971,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; @@ -69992,12 +73025,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; @@ -70022,10 +73054,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; @@ -70037,7 +73069,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; @@ -70073,7 +73105,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:*/ { @@ -70083,7 +73115,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:*/ { @@ -70096,7 +73128,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; @@ -70107,7 +73139,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:*/ { @@ -70193,7 +73225,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; @@ -70212,7 +73244,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:; @@ -70231,16 +73263,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 @@ -70258,7 +73290,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); @@ -70270,44 +73302,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; @@ -70326,7 +73358,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; @@ -70351,10 +73383,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; @@ -70366,7 +73398,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; @@ -70402,7 +73434,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:*/ { @@ -70412,7 +73444,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:*/ { @@ -70425,7 +73457,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; @@ -70436,7 +73468,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:*/ { @@ -70522,7 +73554,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; @@ -70541,7 +73573,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:; @@ -70560,16 +73592,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 @@ -70587,7 +73619,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); @@ -70599,44 +73631,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; @@ -70655,7 +73687,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; @@ -70663,27 +73695,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; @@ -70695,17 +73730,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; } @@ -70731,7 +73776,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:*/ { @@ -70741,7 +73786,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:*/ { @@ -70754,10 +73799,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; @@ -70765,7 +73815,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:*/ { @@ -70805,17 +73855,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; @@ -70836,41 +73888,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:; @@ -70880,7 +73942,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(); @@ -70889,16 +73952,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 @@ -70906,19 +73969,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); @@ -70928,75 +73989,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; @@ -71011,13 +74043,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; @@ -71025,27 +74055,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; @@ -71057,17 +74090,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; } @@ -71093,7 +74136,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:*/ { @@ -71103,7 +74146,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:*/ { @@ -71116,10 +74159,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; @@ -71127,7 +74175,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:*/ { @@ -71167,17 +74215,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; @@ -71198,41 +74248,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:; @@ -71242,7 +74302,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(); @@ -71251,16 +74312,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 @@ -71268,20 +74329,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); @@ -71291,88 +74349,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; @@ -71387,14 +74403,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; @@ -71402,32 +74415,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; @@ -71439,32 +74447,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; } @@ -71490,7 +74483,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:*/ { @@ -71500,7 +74493,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:*/ { @@ -71513,20 +74506,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; @@ -71534,7 +74517,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:*/ { @@ -71574,20 +74557,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; @@ -71608,55 +74588,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:; @@ -71666,9 +74632,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(); @@ -71677,16 +74641,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 @@ -71694,23 +74658,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); @@ -71720,127 +74678,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; @@ -71855,17 +74732,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; @@ -71873,32 +74744,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; @@ -71910,32 +74776,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; } @@ -71961,7 +74812,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:*/ { @@ -71971,7 +74822,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:*/ { @@ -71984,20 +74835,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; @@ -72005,7 +74846,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:*/ { @@ -72045,20 +74886,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; @@ -72079,55 +74917,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:; @@ -72137,9 +74961,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(); @@ -72148,35 +74970,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); @@ -72186,62 +75009,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; @@ -72256,12 +75079,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; @@ -72269,69 +75091,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; } @@ -72342,7 +75158,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:*/ { @@ -72357,7 +75173,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:*/ { @@ -72367,7 +75183,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:*/ { @@ -72380,20 +75196,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; @@ -72401,7 +75207,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:*/ { @@ -72441,20 +75247,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; @@ -72475,55 +75278,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:; @@ -72533,10 +75322,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; @@ -72544,36 +75333,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); @@ -72583,75 +75374,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; @@ -72668,11 +75480,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; @@ -72680,62 +75493,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; } @@ -72746,7 +75581,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:*/ { @@ -72761,7 +75596,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:*/ { @@ -72771,7 +75606,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:*/ { @@ -72784,15 +75619,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; @@ -72800,7 +75645,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:*/ { @@ -72840,19 +75685,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; @@ -72873,51 +75720,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:; @@ -72927,9 +75782,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; @@ -72937,25 +75795,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 @@ -72966,7 +75824,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); @@ -72976,62 +75834,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; @@ -73046,11 +75912,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; @@ -73076,27 +75943,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); @@ -73104,7 +75965,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; @@ -73125,7 +75986,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:*/ { @@ -73140,7 +76001,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:*/ { @@ -73150,7 +76011,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:*/ { @@ -73163,7 +76024,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; @@ -73174,7 +76035,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:*/ { @@ -73260,7 +76121,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; @@ -73279,7 +76140,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:; @@ -73290,9 +76151,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; @@ -73300,37 +76160,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); @@ -73340,83 +76198,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; @@ -73432,12 +76269,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; @@ -73449,43 +76285,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; @@ -73506,7 +76334,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:*/ { @@ -73521,7 +76349,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:*/ { @@ -73531,7 +76359,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:*/ { @@ -73544,7 +76372,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; @@ -73555,7 +76383,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:*/ { @@ -73595,17 +76423,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; @@ -73626,22 +76454,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; @@ -73660,7 +76488,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:; @@ -73671,8 +76499,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; @@ -73680,38 +76507,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); @@ -73721,96 +76549,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; @@ -73832,7 +76668,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; @@ -73840,39 +76676,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); @@ -73880,17 +76727,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; } @@ -73901,7 +76763,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:*/ { @@ -73916,7 +76778,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:*/ { @@ -73926,7 +76788,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:*/ { @@ -73939,10 +76801,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; @@ -73950,7 +76822,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:*/ { @@ -73990,17 +76862,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; @@ -74021,41 +76896,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:; @@ -74065,9 +76954,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; @@ -74075,35 +76967,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); @@ -74113,11 +77011,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) @@ -74130,45 +77052,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; @@ -74184,11 +77150,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; @@ -74196,49 +77166,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; } @@ -74249,7 +77253,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:*/ { @@ -74264,7 +77268,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:*/ { @@ -74274,7 +77278,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:*/ { @@ -74287,10 +77291,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; @@ -74298,7 +77312,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:*/ { @@ -74338,17 +77352,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; @@ -74369,41 +77386,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:; @@ -74413,8 +77444,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; @@ -74422,16 +77457,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 @@ -74439,18 +77474,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); @@ -74460,62 +77503,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; @@ -74531,11 +77678,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; @@ -74543,30 +77698,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; @@ -74578,17 +77733,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; } @@ -74614,7 +77779,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:*/ { @@ -74624,7 +77789,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:*/ { @@ -74637,10 +77802,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; @@ -74648,7 +77818,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:*/ { @@ -74688,17 +77858,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; @@ -74719,70 +77891,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:; @@ -74792,9 +77945,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(); @@ -74803,35 +77955,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); @@ -74841,54 +78003,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; @@ -74903,11 +78203,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; @@ -74915,57 +78226,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; } @@ -74976,7 +78292,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:*/ { @@ -74991,7 +78307,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:*/ { @@ -75001,7 +78317,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:*/ { @@ -75014,10 +78330,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; @@ -75025,7 +78346,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:*/ { @@ -75065,17 +78386,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; @@ -75096,41 +78419,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:; @@ -75140,9 +78473,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; @@ -75150,38 +78483,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); @@ -75191,86 +78521,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; @@ -75290,7 +78596,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; @@ -75302,55 +78608,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; @@ -75371,7 +78657,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:*/ { @@ -75386,7 +78672,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:*/ { @@ -75396,7 +78682,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:*/ { @@ -75409,7 +78695,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; @@ -75420,7 +78706,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:*/ { @@ -75460,17 +78746,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; @@ -75491,22 +78777,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; @@ -75525,7 +78811,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:; @@ -75536,10 +78822,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; @@ -75547,35 +78830,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); @@ -75585,62 +78873,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; @@ -75656,11 +78994,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; @@ -75668,49 +79008,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; } @@ -75721,7 +79094,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:*/ { @@ -75736,7 +79109,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:*/ { @@ -75746,7 +79119,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:*/ { @@ -75759,10 +79132,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; @@ -75770,7 +79148,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:*/ { @@ -75810,17 +79188,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; @@ -75841,41 +79221,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:; @@ -75885,8 +79275,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; @@ -75894,36 +79288,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); @@ -75933,70 +79326,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; @@ -76016,7 +79401,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; @@ -76028,43 +79413,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; @@ -76085,7 +79462,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:*/ { @@ -76100,7 +79477,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:*/ { @@ -76110,7 +79487,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:*/ { @@ -76123,7 +79500,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; @@ -76134,7 +79511,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:*/ { @@ -76174,17 +79551,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; @@ -76205,22 +79582,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; @@ -76239,7 +79616,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:; @@ -76250,8 +79627,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; @@ -76259,16 +79635,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 @@ -76287,7 +79663,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); @@ -76299,60 +79675,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; @@ -76372,7 +79748,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; @@ -76397,10 +79773,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; @@ -76412,7 +79788,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; @@ -76448,7 +79824,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:*/ { @@ -76458,7 +79834,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:*/ { @@ -76471,7 +79847,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; @@ -76482,7 +79858,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:*/ { @@ -76568,7 +79944,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; @@ -76587,7 +79963,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:; @@ -76606,16 +79982,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 @@ -76634,7 +80010,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); @@ -76646,60 +80022,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; @@ -76719,7 +80095,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; @@ -76727,9 +80103,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; @@ -76743,14 +80117,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; @@ -76762,7 +80135,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; @@ -76798,7 +80171,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:*/ { @@ -76808,7 +80181,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:*/ { @@ -76821,9 +80194,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; { @@ -76832,7 +80205,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:*/ { @@ -76918,45 +80291,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); } @@ -76966,7 +80310,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:; @@ -76976,9 +80320,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(); @@ -76987,16 +80329,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 @@ -77015,7 +80357,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); @@ -77027,60 +80369,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; @@ -77100,7 +80442,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; @@ -77108,30 +80450,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; @@ -77143,27 +80482,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; } @@ -77189,7 +80518,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:*/ { @@ -77199,7 +80528,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:*/ { @@ -77212,15 +80541,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; @@ -77228,7 +80552,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:*/ { @@ -77268,19 +80592,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; @@ -77301,51 +80623,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:; @@ -77355,8 +80667,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(); @@ -77365,16 +80676,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 @@ -77382,18 +80693,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); @@ -77403,62 +80713,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; @@ -77473,12 +80767,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; @@ -77486,34 +80779,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; @@ -77525,27 +80811,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; } @@ -77571,7 +80847,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:*/ { @@ -77581,7 +80857,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:*/ { @@ -77594,15 +80870,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; @@ -77610,7 +80881,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:*/ { @@ -77650,19 +80921,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; @@ -77683,109 +80952,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:; @@ -77795,11 +80996,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(); @@ -77808,37 +81005,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); @@ -77848,78 +81042,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; @@ -77934,12 +81096,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; @@ -77951,49 +81112,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; @@ -78014,7 +81161,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:*/ { @@ -78029,7 +81176,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:*/ { @@ -78039,7 +81186,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:*/ { @@ -78052,7 +81199,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; @@ -78063,7 +81210,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:*/ { @@ -78103,17 +81250,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; @@ -78134,22 +81281,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; @@ -78168,7 +81315,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:; @@ -78179,9 +81326,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; @@ -78189,25 +81334,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 @@ -78218,7 +81363,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); @@ -78228,70 +81373,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; @@ -78307,11 +81457,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; @@ -78323,43 +81474,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; @@ -78380,7 +81523,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:*/ { @@ -78395,7 +81538,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:*/ { @@ -78405,7 +81548,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:*/ { @@ -78418,7 +81561,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; @@ -78429,7 +81572,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:*/ { @@ -78469,17 +81612,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; @@ -78500,22 +81643,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; @@ -78534,7 +81677,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:; @@ -78545,8 +81688,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; @@ -78554,16 +81696,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 @@ -78571,18 +81713,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); @@ -78592,62 +81736,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; @@ -78663,11 +81833,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; @@ -78675,27 +81847,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; @@ -78707,17 +81884,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; } @@ -78743,7 +81935,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:*/ { @@ -78753,7 +81945,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:*/ { @@ -78766,10 +81958,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; @@ -78777,7 +81979,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:*/ { @@ -78817,17 +82019,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; @@ -78848,41 +82053,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:; @@ -78892,7 +82111,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(); @@ -78901,35 +82122,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); @@ -78939,54 +82165,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; @@ -79001,11 +82300,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; @@ -79013,57 +82318,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; } @@ -79074,7 +82391,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:*/ { @@ -79089,7 +82406,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:*/ { @@ -79099,7 +82416,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:*/ { @@ -79112,10 +82429,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; @@ -79123,7 +82450,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:*/ { @@ -79163,17 +82490,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; @@ -79194,41 +82524,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:; @@ -79238,9 +82582,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; @@ -79248,37 +82593,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); @@ -79288,78 +82631,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; @@ -79379,7 +82706,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; @@ -79387,63 +82714,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; } @@ -79454,7 +82787,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:*/ { @@ -79469,7 +82802,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:*/ { @@ -79479,7 +82812,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:*/ { @@ -79492,10 +82825,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; @@ -79503,7 +82846,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:*/ { @@ -79543,17 +82886,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; @@ -79574,41 +82920,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:; @@ -79618,10 +82978,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; @@ -79629,35 +82989,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); @@ -79667,54 +83028,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; @@ -79729,11 +83111,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; @@ -79741,57 +83125,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; } @@ -79802,7 +83191,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:*/ { @@ -79817,7 +83206,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:*/ { @@ -79827,7 +83216,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:*/ { @@ -79840,10 +83229,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; @@ -79851,7 +83245,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:*/ { @@ -79891,17 +83285,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; @@ -79922,41 +83318,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:; @@ -79966,9 +83372,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; @@ -79976,35 +83382,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); @@ -80014,54 +83421,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; @@ -80080,7 +83495,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; @@ -80106,21 +83521,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); @@ -80128,7 +83549,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; @@ -80149,7 +83570,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:*/ { @@ -80164,7 +83585,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:*/ { @@ -80174,7 +83595,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:*/ { @@ -80187,7 +83608,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; @@ -80198,7 +83619,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:*/ { @@ -80284,7 +83705,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; @@ -80303,7 +83724,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:; @@ -80314,7 +83735,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(); @@ -80323,36 +83745,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); @@ -80362,75 +83785,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; @@ -80451,7 +83882,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; @@ -80463,35 +83894,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; @@ -80512,7 +83951,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:*/ { @@ -80527,7 +83966,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:*/ { @@ -80537,7 +83976,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:*/ { @@ -80550,7 +83989,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; @@ -80561,7 +84000,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:*/ { @@ -80601,17 +84040,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; @@ -80632,22 +84071,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; @@ -80666,7 +84105,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:; @@ -80677,7 +84116,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; @@ -80685,16 +84125,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 @@ -80702,18 +84142,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); @@ -80723,62 +84166,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; @@ -80794,11 +84271,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; @@ -80810,35 +84289,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; @@ -80859,7 +84346,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:*/ { @@ -80874,7 +84361,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:*/ { @@ -80884,7 +84371,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:*/ { @@ -80897,7 +84384,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; @@ -80908,7 +84395,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:*/ { @@ -80948,17 +84435,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; @@ -80979,22 +84466,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; @@ -81013,7 +84500,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:; @@ -81025,6 +84512,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; @@ -81032,37 +84520,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); @@ -81072,78 +84558,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; @@ -81163,7 +84633,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; @@ -81175,49 +84645,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; @@ -81238,7 +84694,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:*/ { @@ -81253,7 +84709,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:*/ { @@ -81263,7 +84719,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:*/ { @@ -81276,7 +84732,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; @@ -81287,7 +84743,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:*/ { @@ -81327,17 +84783,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; @@ -81358,22 +84814,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; @@ -81392,7 +84848,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:; @@ -81403,9 +84859,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; @@ -81413,36 +84867,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); @@ -81452,70 +84905,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; @@ -81535,7 +84980,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; @@ -81543,47 +84988,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; @@ -81604,7 +85044,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:*/ { @@ -81619,7 +85059,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:*/ { @@ -81629,7 +85069,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:*/ { @@ -81642,9 +85082,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; { @@ -81653,7 +85093,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:*/ { @@ -81693,17 +85133,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; @@ -81724,31 +85164,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); } @@ -81758,7 +85227,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:; @@ -81768,9 +85237,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; @@ -81778,16 +85248,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 @@ -81795,20 +85265,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); @@ -81818,88 +85286,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; @@ -81915,13 +85357,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; @@ -81946,10 +85386,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; @@ -81961,7 +85401,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; @@ -81997,7 +85437,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:*/ { @@ -82007,7 +85447,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:*/ { @@ -82020,7 +85460,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; @@ -82031,7 +85471,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:*/ { @@ -82117,7 +85557,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; @@ -82136,7 +85576,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:; @@ -82155,24 +85595,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 @@ -82183,7 +85623,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); @@ -82193,54 +85633,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; @@ -82255,11 +85703,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; @@ -82271,43 +85720,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; @@ -82328,7 +85769,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:*/ { @@ -82343,7 +85784,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:*/ { @@ -82353,7 +85794,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:*/ { @@ -82366,7 +85807,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; @@ -82377,7 +85818,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:*/ { @@ -82417,17 +85858,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; @@ -82448,22 +85889,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; @@ -82482,7 +85923,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:; @@ -82493,8 +85934,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; @@ -82502,37 +85942,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); @@ -82542,88 +85980,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; @@ -82638,14 +86042,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; @@ -82657,35 +86058,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; @@ -82706,7 +86115,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:*/ { @@ -82721,7 +86130,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:*/ { @@ -82731,7 +86140,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:*/ { @@ -82744,7 +86153,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; @@ -82755,7 +86164,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:*/ { @@ -82795,17 +86204,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; @@ -82826,22 +86235,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; @@ -82860,7 +86269,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:; @@ -82871,7 +86280,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; @@ -82879,35 +86289,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); @@ -82917,54 +86330,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; @@ -82979,11 +86424,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; @@ -83009,21 +86455,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); @@ -83031,7 +86489,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; @@ -83052,7 +86510,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:*/ { @@ -83067,7 +86525,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:*/ { @@ -83077,7 +86535,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:*/ { @@ -83090,7 +86548,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; @@ -83101,7 +86559,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:*/ { @@ -83187,7 +86645,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; @@ -83206,7 +86664,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:; @@ -83217,6 +86675,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); @@ -83226,36 +86686,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); @@ -83265,70 +86724,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; @@ -83348,7 +86799,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; @@ -83360,43 +86811,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; @@ -83417,7 +86860,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:*/ { @@ -83432,7 +86875,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:*/ { @@ -83442,7 +86885,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:*/ { @@ -83455,7 +86898,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; @@ -83466,7 +86909,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:*/ { @@ -83506,17 +86949,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; @@ -83537,22 +86980,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; @@ -83571,7 +87014,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:; @@ -83582,8 +87025,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; @@ -83591,35 +87033,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); @@ -83629,62 +87072,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; @@ -83704,7 +87155,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; @@ -83716,35 +87167,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; @@ -83765,7 +87224,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:*/ { @@ -83780,7 +87239,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:*/ { @@ -83790,7 +87249,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:*/ { @@ -83803,7 +87262,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; @@ -83814,7 +87273,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:*/ { @@ -83854,17 +87313,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; @@ -83885,22 +87344,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; @@ -83919,7 +87378,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:; @@ -83930,7 +87389,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; @@ -83938,16 +87398,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 @@ -83966,7 +87426,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); @@ -83978,60 +87438,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; @@ -84051,7 +87511,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; @@ -84076,10 +87536,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; @@ -84091,7 +87551,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; @@ -84127,7 +87587,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:*/ { @@ -84137,7 +87597,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:*/ { @@ -84150,7 +87610,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; @@ -84161,7 +87621,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:*/ { @@ -84247,7 +87707,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; @@ -84266,7 +87726,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:; @@ -84285,16 +87745,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 @@ -84313,7 +87773,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); @@ -84325,60 +87785,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; @@ -84398,7 +87858,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; @@ -84406,7 +87866,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; @@ -84420,13 +87882,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; @@ -84438,7 +87901,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; @@ -84474,7 +87937,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:*/ { @@ -84484,7 +87947,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:*/ { @@ -84497,9 +87960,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; { @@ -84508,7 +87971,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:*/ { @@ -84594,16 +88057,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); } @@ -84613,7 +88105,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:; @@ -84623,7 +88115,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(); @@ -84632,16 +88126,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 @@ -84660,7 +88154,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); @@ -84672,60 +88166,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; @@ -84745,7 +88239,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; @@ -84753,27 +88247,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; @@ -84785,17 +88282,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; } @@ -84821,7 +88328,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:*/ { @@ -84831,7 +88338,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:*/ { @@ -84844,10 +88351,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; @@ -84855,7 +88367,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:*/ { @@ -84895,17 +88407,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; @@ -84926,41 +88440,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:; @@ -84970,7 +88494,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(); @@ -84979,16 +88504,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 @@ -85007,7 +88532,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); @@ -85019,60 +88544,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; @@ -85092,7 +88617,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; @@ -85100,27 +88625,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; @@ -85132,17 +88664,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; } @@ -85168,7 +88710,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:*/ { @@ -85178,7 +88720,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:*/ { @@ -85191,10 +88733,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; @@ -85202,7 +88749,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:*/ { @@ -85242,17 +88789,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; @@ -85273,41 +88822,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:; @@ -85317,7 +88934,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(); @@ -85326,35 +88947,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); @@ -85364,62 +88987,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; @@ -85439,7 +89078,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; @@ -85451,35 +89090,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; @@ -85500,7 +89153,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:*/ { @@ -85515,7 +89168,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:*/ { @@ -85525,7 +89178,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:*/ { @@ -85538,7 +89191,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; @@ -85549,7 +89202,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:*/ { @@ -85589,17 +89242,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; @@ -85620,22 +89273,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; @@ -85654,7 +89307,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:; @@ -85665,7 +89318,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; @@ -85673,25 +89328,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 @@ -85702,7 +89357,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); @@ -85712,75 +89367,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; @@ -85796,12 +89446,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; @@ -85813,35 +89462,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; @@ -85862,7 +89519,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:*/ { @@ -85877,7 +89534,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:*/ { @@ -85887,7 +89544,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:*/ { @@ -85900,7 +89557,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; @@ -85911,7 +89568,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:*/ { @@ -85951,17 +89608,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; @@ -85982,22 +89639,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; @@ -86016,7 +89673,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:; @@ -86027,7 +89684,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; @@ -86035,23 +89693,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; @@ -86063,7 +89721,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); @@ -86073,62 +89731,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; @@ -86148,7 +89806,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; @@ -86173,22 +89831,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; @@ -86209,7 +89867,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:*/ { @@ -86224,7 +89882,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:*/ { @@ -86234,7 +89892,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:*/ { @@ -86247,7 +89905,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; @@ -86258,7 +89916,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:*/ { @@ -86344,7 +90002,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; @@ -86363,7 +90021,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:; @@ -86374,7 +90032,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; @@ -86382,37 +90040,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); @@ -86422,83 +90078,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; @@ -86513,13 +90140,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; @@ -86545,21 +90170,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); @@ -86567,7 +90192,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; @@ -86588,7 +90213,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:*/ { @@ -86603,7 +90228,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:*/ { @@ -86613,7 +90238,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:*/ { @@ -86626,7 +90251,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; @@ -86637,7 +90262,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:*/ { @@ -86723,7 +90348,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; @@ -86742,7 +90367,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:; @@ -86753,8 +90378,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; @@ -86762,16 +90387,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 @@ -86780,25 +90405,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); @@ -86808,161 +90427,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; @@ -86978,18 +90514,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; @@ -87015,21 +90544,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); @@ -87037,7 +90572,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; @@ -87058,7 +90593,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:*/ { @@ -87073,7 +90608,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:*/ { @@ -87083,7 +90618,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:*/ { @@ -87096,7 +90631,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; @@ -87107,7 +90642,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:*/ { @@ -87193,7 +90728,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; @@ -87212,7 +90747,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:; @@ -87225,6 +90760,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; @@ -87232,34 +90768,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); @@ -87269,46 +90806,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; @@ -87327,7 +90872,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; @@ -87339,35 +90884,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; @@ -87388,7 +90941,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:*/ { @@ -87403,7 +90956,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:*/ { @@ -87413,7 +90966,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:*/ { @@ -87426,7 +90979,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; @@ -87437,7 +90990,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:*/ { @@ -87477,17 +91030,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; @@ -87508,22 +91061,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; @@ -87542,7 +91095,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:; @@ -87553,7 +91106,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; @@ -87561,16 +91115,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 @@ -87578,17 +91132,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); @@ -87598,46 +91153,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; @@ -87656,7 +91219,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; @@ -87668,35 +91231,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; @@ -87717,7 +91288,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:*/ { @@ -87732,7 +91303,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:*/ { @@ -87742,7 +91313,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:*/ { @@ -87755,7 +91326,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; @@ -87766,7 +91337,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:*/ { @@ -87806,17 +91377,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; @@ -87837,22 +91408,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; @@ -87871,7 +91442,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:; @@ -87883,6 +91454,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; @@ -87890,16 +91462,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 @@ -87908,17 +91480,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); @@ -87928,62 +91503,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; @@ -87999,11 +91613,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; @@ -88028,10 +91645,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; @@ -88043,7 +91660,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; @@ -88079,7 +91696,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:*/ { @@ -88089,7 +91706,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:*/ { @@ -88102,7 +91719,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; @@ -88113,7 +91730,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:*/ { @@ -88199,7 +91816,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; @@ -88218,7 +91835,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:; @@ -88237,40 +91854,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); @@ -88280,117 +91893,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; @@ -88407,13 +91978,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; @@ -88421,76 +91990,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; } @@ -88501,7 +92043,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:*/ { @@ -88516,7 +92058,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:*/ { @@ -88526,7 +92068,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:*/ { @@ -88539,15 +92081,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; @@ -88555,7 +92092,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:*/ { @@ -88595,19 +92132,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; @@ -88628,51 +92163,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:; @@ -88682,11 +92207,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; @@ -88694,16 +92216,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 @@ -88711,17 +92233,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); @@ -88731,46 +92254,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; @@ -88785,11 +92324,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; @@ -88814,10 +92354,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; @@ -88829,7 +92369,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; @@ -88865,7 +92405,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:*/ { @@ -88875,7 +92415,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:*/ { @@ -88888,7 +92428,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; @@ -88899,7 +92439,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:*/ { @@ -88985,7 +92525,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; @@ -89004,7 +92544,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:; @@ -89023,36 +92563,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); @@ -89062,75 +92603,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; @@ -89146,12 +92690,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; @@ -89163,35 +92706,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; @@ -89212,7 +92769,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:*/ { @@ -89227,7 +92784,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:*/ { @@ -89237,7 +92794,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:*/ { @@ -89250,7 +92807,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; @@ -89261,7 +92818,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:*/ { @@ -89301,17 +92858,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; @@ -89332,22 +92889,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; @@ -89366,7 +92923,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:; @@ -89377,7 +92934,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; @@ -89385,16 +92944,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 @@ -89403,23 +92962,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); @@ -89429,130 +92983,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; @@ -89568,15 +93062,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; @@ -89584,48 +93074,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); @@ -89633,27 +93114,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; } @@ -89664,7 +93135,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:*/ { @@ -89679,7 +93150,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:*/ { @@ -89689,7 +93160,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:*/ { @@ -89702,15 +93173,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; @@ -89718,7 +93184,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:*/ { @@ -89758,19 +93224,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; @@ -89791,51 +93255,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:; @@ -89845,11 +93299,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; @@ -89857,39 +93309,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); @@ -89899,104 +93349,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; @@ -90018,7 +93452,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; @@ -90026,76 +93460,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; } @@ -90106,7 +93513,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:*/ { @@ -90121,7 +93528,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:*/ { @@ -90131,7 +93538,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:*/ { @@ -90144,15 +93551,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; @@ -90160,7 +93562,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:*/ { @@ -90200,19 +93602,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; @@ -90233,51 +93633,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:; @@ -90287,11 +93677,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; @@ -90299,27 +93686,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 @@ -90330,7 +93717,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); @@ -90340,101 +93727,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; @@ -90451,13 +93828,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; @@ -90465,62 +93840,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; } @@ -90531,7 +93907,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:*/ { @@ -90546,7 +93922,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:*/ { @@ -90556,7 +93932,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:*/ { @@ -90569,15 +93945,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; @@ -90585,7 +93956,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:*/ { @@ -90625,19 +93996,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; @@ -90658,51 +94027,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:; @@ -90712,9 +94071,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; @@ -90722,24 +94082,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 @@ -90750,7 +94110,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); @@ -90760,54 +94120,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; @@ -90826,7 +94186,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; @@ -90852,21 +94212,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); @@ -90874,7 +94234,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; @@ -90895,7 +94255,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:*/ { @@ -90910,7 +94270,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:*/ { @@ -90920,7 +94280,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:*/ { @@ -90933,7 +94293,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; @@ -90944,7 +94304,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:*/ { @@ -91030,7 +94390,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; @@ -91049,7 +94409,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:; @@ -91060,8 +94420,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; @@ -91069,35 +94429,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); @@ -91107,62 +94469,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; @@ -91178,11 +94566,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; @@ -91207,22 +94597,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; @@ -91243,7 +94633,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:*/ { @@ -91258,7 +94648,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:*/ { @@ -91268,7 +94658,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:*/ { @@ -91281,7 +94671,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; @@ -91292,7 +94682,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:*/ { @@ -91378,7 +94768,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; @@ -91397,7 +94787,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:; @@ -91408,7 +94798,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; @@ -91416,38 +94806,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); @@ -91457,91 +94844,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; @@ -91556,13 +94906,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; @@ -91570,48 +94918,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); @@ -91619,27 +94958,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; } @@ -91650,7 +94979,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:*/ { @@ -91665,7 +94994,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:*/ { @@ -91675,7 +95004,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:*/ { @@ -91688,15 +95017,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; @@ -91704,7 +95028,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:*/ { @@ -91744,19 +95068,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; @@ -91777,51 +95099,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:; @@ -91831,11 +95143,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; @@ -91843,25 +95153,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 @@ -91872,7 +95182,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); @@ -91882,75 +95192,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; @@ -91966,12 +95271,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; @@ -91983,35 +95287,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; @@ -92032,7 +95344,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:*/ { @@ -92047,7 +95359,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:*/ { @@ -92057,7 +95369,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:*/ { @@ -92070,7 +95382,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; @@ -92081,7 +95393,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:*/ { @@ -92121,17 +95433,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; @@ -92152,22 +95464,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; @@ -92186,7 +95498,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:; @@ -92197,7 +95509,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; @@ -92205,16 +95518,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 @@ -92222,17 +95535,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); @@ -92242,46 +95556,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; @@ -92296,11 +95626,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; @@ -92325,10 +95656,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; @@ -92340,7 +95671,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; @@ -92376,7 +95707,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:*/ { @@ -92386,7 +95717,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:*/ { @@ -92399,7 +95730,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; @@ -92410,7 +95741,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:*/ { @@ -92496,7 +95827,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; @@ -92515,7 +95846,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:; @@ -92534,16 +95865,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 @@ -92551,17 +95882,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); @@ -92571,46 +95903,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; @@ -92625,11 +95973,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; @@ -92654,10 +96003,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; @@ -92669,7 +96018,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; @@ -92705,7 +96054,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:*/ { @@ -92715,7 +96064,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:*/ { @@ -92728,7 +96077,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; @@ -92739,7 +96088,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:*/ { @@ -92825,7 +96174,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; @@ -92844,7 +96193,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:; @@ -92863,16 +96212,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 @@ -92891,7 +96240,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); @@ -92903,60 +96252,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; @@ -92976,7 +96325,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; @@ -93001,10 +96350,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; @@ -93016,7 +96365,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; @@ -93052,7 +96401,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:*/ { @@ -93062,7 +96411,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:*/ { @@ -93075,7 +96424,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; @@ -93086,7 +96435,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:*/ { @@ -93172,7 +96521,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; @@ -93191,7 +96540,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:; @@ -93210,36 +96559,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); @@ -93249,62 +96597,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; @@ -93319,11 +96667,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; @@ -93335,49 +96684,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; @@ -93398,7 +96733,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:*/ { @@ -93413,7 +96748,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:*/ { @@ -93423,7 +96758,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:*/ { @@ -93436,7 +96771,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; @@ -93447,7 +96782,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:*/ { @@ -93487,17 +96822,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; @@ -93518,22 +96853,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; @@ -93552,7 +96887,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:; @@ -93563,9 +96898,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; @@ -93573,16 +96906,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 @@ -93601,7 +96934,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); @@ -93613,60 +96946,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; @@ -93686,7 +97019,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; @@ -93711,10 +97044,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; @@ -93726,7 +97059,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; @@ -93762,7 +97095,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:*/ { @@ -93772,7 +97105,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:*/ { @@ -93785,7 +97118,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; @@ -93796,7 +97129,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:*/ { @@ -93882,7 +97215,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; @@ -93901,7 +97234,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:; @@ -93920,35 +97253,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); @@ -93958,62 +97295,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; @@ -94029,11 +97403,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; @@ -94045,35 +97420,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; @@ -94094,7 +97489,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:*/ { @@ -94109,7 +97504,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:*/ { @@ -94119,7 +97514,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:*/ { @@ -94132,7 +97527,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; @@ -94143,7 +97538,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:*/ { @@ -94183,17 +97578,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; @@ -94214,22 +97609,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; @@ -94248,7 +97643,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:; @@ -94259,7 +97654,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; @@ -94267,16 +97665,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 @@ -94295,7 +97693,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); @@ -94307,60 +97705,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; @@ -94380,7 +97778,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; @@ -94405,10 +97803,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; @@ -94420,7 +97818,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; @@ -94456,7 +97854,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:*/ { @@ -94466,7 +97864,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:*/ { @@ -94479,7 +97877,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; @@ -94490,7 +97888,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:*/ { @@ -94576,7 +97974,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; @@ -94595,7 +97993,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:; @@ -94614,16 +98012,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 @@ -94631,8 +98029,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 @@ -94643,7 +98041,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); @@ -94653,75 +98051,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; @@ -94742,7 +98140,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; @@ -94767,10 +98165,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; @@ -94782,7 +98180,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; @@ -94818,7 +98216,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:*/ { @@ -94828,7 +98226,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:*/ { @@ -94841,7 +98239,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; @@ -94852,7 +98250,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:*/ { @@ -94938,7 +98336,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; @@ -94957,7 +98355,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:; @@ -94976,16 +98374,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 @@ -94994,18 +98392,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); @@ -95015,62 +98414,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; @@ -95085,11 +98505,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; @@ -95115,27 +98537,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); @@ -95143,7 +98559,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; @@ -95164,7 +98580,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:*/ { @@ -95179,7 +98595,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:*/ { @@ -95189,7 +98605,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:*/ { @@ -95202,7 +98618,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; @@ -95213,7 +98629,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:*/ { @@ -95299,7 +98715,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; @@ -95318,7 +98734,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:; @@ -95331,7 +98747,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; @@ -95339,39 +98754,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); @@ -95381,104 +98792,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; @@ -95494,13 +98863,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; @@ -95512,49 +98879,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; @@ -95575,7 +98928,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:*/ { @@ -95590,7 +98943,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:*/ { @@ -95600,7 +98953,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:*/ { @@ -95613,7 +98966,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; @@ -95624,7 +98977,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:*/ { @@ -95664,17 +99017,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; @@ -95695,22 +99048,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; @@ -95729,7 +99082,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:; @@ -95740,9 +99093,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; @@ -95750,36 +99101,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); @@ -95789,75 +99141,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; @@ -95878,7 +99238,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; @@ -95890,35 +99250,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; @@ -95939,7 +99307,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:*/ { @@ -95954,7 +99322,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:*/ { @@ -95964,7 +99332,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:*/ { @@ -95977,7 +99345,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; @@ -95988,7 +99356,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:*/ { @@ -96028,17 +99396,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; @@ -96059,22 +99427,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; @@ -96093,7 +99461,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:; @@ -96104,7 +99472,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; @@ -96112,35 +99481,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); @@ -96150,62 +99527,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; @@ -96221,11 +99697,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; @@ -96237,35 +99720,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; @@ -96286,7 +99777,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:*/ { @@ -96301,7 +99792,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:*/ { @@ -96311,7 +99802,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:*/ { @@ -96324,7 +99815,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; @@ -96335,7 +99826,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:*/ { @@ -96375,17 +99866,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; @@ -96406,22 +99897,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; @@ -96440,7 +99931,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:; @@ -96451,7 +99942,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; @@ -96459,37 +99951,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); @@ -96499,78 +99992,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; @@ -96590,7 +100091,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; @@ -96598,48 +100099,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); @@ -96647,27 +100151,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; } @@ -96678,7 +100172,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:*/ { @@ -96693,7 +100187,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:*/ { @@ -96703,7 +100197,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:*/ { @@ -96716,15 +100210,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; @@ -96732,7 +100221,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:*/ { @@ -96772,19 +100261,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; @@ -96805,51 +100292,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:; @@ -96859,8 +100336,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); @@ -96871,37 +100348,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); @@ -96911,70 +100385,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; @@ -96993,7 +100443,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; @@ -97005,55 +100455,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; @@ -97074,7 +100504,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:*/ { @@ -97089,7 +100519,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:*/ { @@ -97099,7 +100529,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:*/ { @@ -97112,7 +100542,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; @@ -97123,7 +100553,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:*/ { @@ -97163,17 +100593,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; @@ -97194,22 +100624,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; @@ -97228,7 +100658,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:; @@ -97239,10 +100669,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; @@ -97250,16 +100677,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 @@ -97267,19 +100694,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); @@ -97289,70 +100714,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; @@ -97367,12 +100768,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; @@ -97384,43 +100784,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; @@ -97441,7 +100833,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:*/ { @@ -97456,7 +100848,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:*/ { @@ -97466,7 +100858,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:*/ { @@ -97479,7 +100871,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; @@ -97490,7 +100882,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:*/ { @@ -97530,17 +100922,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; @@ -97561,22 +100953,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; @@ -97595,7 +100987,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:; @@ -97607,7 +100999,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; @@ -97615,36 +101006,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); @@ -97654,62 +101044,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; @@ -97724,11 +101114,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; @@ -97740,49 +101131,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; @@ -97803,7 +101180,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:*/ { @@ -97818,7 +101195,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:*/ { @@ -97828,7 +101205,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:*/ { @@ -97841,7 +101218,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; @@ -97852,7 +101229,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:*/ { @@ -97892,17 +101269,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; @@ -97923,22 +101300,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; @@ -97957,7 +101334,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:; @@ -97968,9 +101345,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; @@ -97978,16 +101353,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 @@ -97997,17 +101372,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); @@ -98017,62 +101396,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; @@ -98087,11 +101521,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; @@ -98099,45 +101537,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); @@ -98145,17 +101586,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; } @@ -98181,7 +101632,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:*/ { @@ -98191,7 +101642,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:*/ { @@ -98204,10 +101655,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; @@ -98215,7 +101671,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:*/ { @@ -98255,17 +101711,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; @@ -98286,41 +101744,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:; @@ -98330,7 +101798,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); @@ -98341,37 +101810,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); @@ -98381,78 +101847,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; @@ -98467,12 +101901,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; @@ -98484,49 +101917,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; @@ -98547,7 +101966,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:*/ { @@ -98562,7 +101981,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:*/ { @@ -98572,7 +101991,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:*/ { @@ -98585,7 +102004,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; @@ -98596,7 +102015,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:*/ { @@ -98636,17 +102055,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; @@ -98667,22 +102086,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; @@ -98701,7 +102120,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:; @@ -98712,9 +102131,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; @@ -98722,35 +102139,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); @@ -98760,62 +102184,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; @@ -98831,11 +102336,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; @@ -98843,49 +102353,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; } @@ -98896,7 +102433,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:*/ { @@ -98911,7 +102448,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:*/ { @@ -98921,7 +102458,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:*/ { @@ -98934,10 +102471,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; @@ -98945,7 +102487,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:*/ { @@ -98985,17 +102527,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; @@ -99016,41 +102560,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:; @@ -99060,8 +102614,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; @@ -99069,16 +102626,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 @@ -99086,18 +102643,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); @@ -99107,62 +102666,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; @@ -99178,11 +102763,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; @@ -99207,10 +102794,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; @@ -99222,7 +102809,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; @@ -99258,7 +102845,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:*/ { @@ -99268,7 +102855,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:*/ { @@ -99281,7 +102868,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; @@ -99292,7 +102879,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:*/ { @@ -99378,7 +102965,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; @@ -99397,7 +102984,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:; @@ -99416,34 +103003,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); @@ -99453,93 +103042,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; @@ -99547,34 +103365,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); @@ -99584,94 +103409,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; @@ -99679,34 +103837,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); @@ -99716,73 +103879,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; @@ -99790,34 +104279,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); @@ -99827,73 +104320,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_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)); } - __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_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.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __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) { - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("bytes2str", 0); - +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 + 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; @@ -99901,38 +104702,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); @@ -99941,196 +104739,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:; + } + } + } + + /*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:; } - 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_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; @@ -100138,34 +105049,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); @@ -100175,571 +105087,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, 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); + 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; + } + __pyx_L15:; + } } - __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 (;;) { + } + + /*finally:*/ { + /*normal exit:*/{ { - __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_f_5talib_7_ta_lib__ta_end_read(); } - 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; + /*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_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; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __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_f_5talib_7_ta_lib__ta_end_read(); + } - __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; + /*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_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((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; - __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; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; - __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_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -100747,34 +105396,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); @@ -100784,104 +105437,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; @@ -100889,34 +105823,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); @@ -100926,91 +105861,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; @@ -101018,34 +106170,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); @@ -101055,107 +106209,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_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_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; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_1 = 0; + goto __pyx_L0; + + } - __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) + 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, 9115, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_SWAK_BP_Lookback(__pyx_v_timeperiod, __pyx_v_delta)); + } + + /*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, 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)); + } + + /*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_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_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_XDECREF(__pyx_t_3); - __Pyx_XDECREF(__pyx_t_4); - __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_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; @@ -101163,34 +106532,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED /* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_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_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, +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; + 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_names (wrapper)", 0); + __Pyx_RefNannySetupContext("SWAK_BUTTER (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101200,177 +106570,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, 192, __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(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, 192, __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, "get_input_names", 0) < (0)) __PYX_ERR(2, 192, __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("get_input_names", 1, 1, 1, i); __PYX_ERR(2, 192, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_BUTTER", 0, 1, 2, i); __PYX_ERR(6, 9128, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - 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) + 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]; } 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_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.get_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_10get_input_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, 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]); } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} + 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:; -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; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +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; - 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_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, 197, __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 = 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_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); - } - __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_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; + + { + 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, 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_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); - __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__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; + { + 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_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_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_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(__pyx_v_ret); - __pyx_r = __pyx_v_ret; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -101380,14 +106860,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_BUTTER", __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; @@ -101395,24 +106879,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_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_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_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; - 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 @@ -101423,7 +106907,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_GAUSS (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101433,238 +106917,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, 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(2, 203, __pyx_L3_error) + 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, 203, __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, "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_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("SWAK_GAUSS", 0, 1, 2, i); __PYX_ERR(6, 9169, __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, 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]; - __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_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.set_input_names", __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_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, 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_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_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; - 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_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, 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, 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_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, 9193, __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, 9197, __pyx_L1_error) + + /*try:*/ { + + { + 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); - 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_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:; + } } - __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_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_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_GAUSS", __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; @@ -101672,34 +107226,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_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_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_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; + 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_HP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101709,164 +107264,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, 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(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, 215, __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, "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_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("get_input_arrays", 1, 1, 1, i); __PYX_ERR(2, 215, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("SWAK_HP", 0, 1, 2, i); __PYX_ERR(6, 9210, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - 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, 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]; } 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_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.get_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_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, 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_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_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; 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_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, 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, 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_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, 9234, __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, 9238, __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_HP_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, 9242, __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_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)); + } + + /*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_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((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_HP", __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; @@ -101874,35 +107573,36 @@ 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_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_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_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; - PyObject *__pyx_v_input_arrays = 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[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("set_input_arrays (wrapper)", 0); + __Pyx_RefNannySetupContext("T3 (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -101912,311 +107612,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_arrays,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, 226, __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(2, 226, __pyx_L3_error) + 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, 226, __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, "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, "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("T3", 0, 1, 3, i); __PYX_ERR(6, 9251, __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 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]; - __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("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.set_input_arrays", __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_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, 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_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_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; 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("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, 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, 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_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, 9276, __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); + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_1; + } + __Pyx_XDECREF(__pyx_temp); } - 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 = 0; + goto __pyx_L0; - __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, 9280, __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_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + } + /*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); + __pyx_t_1 = ((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_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 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) + { + 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_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_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_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(Py_False); - __pyx_r = Py_False; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -102226,17 +107916,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.T3", __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; @@ -102244,23 +107935,23 @@ 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_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_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_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; + PyArrayObject *__pyx_v_real = 0; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -102271,7 +107962,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("get_parameters (wrapper)", 0); + __Pyx_RefNannySetupContext("TAN (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102281,179 +107972,270 @@ PyObject *__pyx_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,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, 9293, __pyx_L3_error) if (__pyx_kwds_len > 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) + 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, 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, "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("get_parameters", 1, 1, 1, i); __PYX_ERR(2, 275, __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 { 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, 9293, __pyx_L3_error) } - __pyx_v_self = values[0]; + __pyx_v_real = ((PyArrayObject *)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("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_AddTraceback("talib._ta_lib.Function.get_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_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, 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]); + } + 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_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; - 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("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, 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, 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 = 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, 9315, __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, 9319, __pyx_L1_error) + + /*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_t_1 = ((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_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_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:; + } } - 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_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9329, __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); } @@ -102463,14 +108245,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.TAN", __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; @@ -102478,36 +108264,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_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_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_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_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("TANH (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102516,298 +108300,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, 9332, __pyx_L3_error) if (__pyx_kwds_len > 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, 9332, __pyx_L3_error) CYTHON_FALLTHROUGH; case 0: break; 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, "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_parameters", 0, 1, 2, i); __PYX_ERR(2, 285, __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)) { + 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, 9332, __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("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_kwargs); __pyx_v_kwargs = 0; - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __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_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, 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_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_param = NULL; - PyObject *__pyx_v_value = 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; 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_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)(PyObject *); + 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_parameters", 0); - __Pyx_INCREF(__pyx_v_parameters); + __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, 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, 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_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, 9354, __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_3 = __pyx_v_parameters; - __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_items, __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, 292, __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, 292, __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, 292, __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, 292, __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, 292, __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, 292, __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, 292, __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, 9358, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __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_1 = ((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); - 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, 292, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); - __Pyx_INCREF(__pyx_t_7); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); - __Pyx_INCREF(__pyx_t_8); - } else { - __pyx_t_7 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_8); - } - #else - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_10 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); - index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_7); - index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(__pyx_t_8); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < (0)) __PYX_ERR(2, 292, __pyx_L1_error) - __pyx_t_10 = NULL; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_10 = 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_7); - __pyx_t_7 = 0; - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); - __pyx_t_8 = 0; + __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; - __pyx_t_8 = __pyx_v_self; - __Pyx_INCREF(__pyx_t_8); - __pyx_t_4 = 0; { - PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param, __pyx_v_value}; - __pyx_t_1 = __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_8); __pyx_t_8 = 0; - if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + 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)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(2, 293, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_2) { + } + /*finally:*/ { + /*normal exit:*/{ + { + 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, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 294, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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_3); __pyx_t_3 = 0; - if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 295, __pyx_L1_error) + __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; - __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_3) < 0))) __PYX_ERR(2, 296, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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_7); - __Pyx_XDECREF(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_9); - __Pyx_AddTraceback("talib._ta_lib.Function.set_parameters", __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_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; @@ -102815,36 +108593,35 @@ 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_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_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_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; - 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("set_function_args (wrapper)", 0); + __Pyx_RefNannySetupContext("TEMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -102853,422 +108630,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, 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, 300, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9371, __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, 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, 300, __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; - 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, 300, __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("set_function_args", 0, 1, 1, i); __PYX_ERR(2, 300, __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, 300, __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("set_function_args", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 300, __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_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.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_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, 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]); } - __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; - 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; +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; + 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; + 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("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, 304, __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_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, 307, __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, 307, __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, 308, __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, 308, __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, 309, __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, 9395, __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, 310, __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, 310, __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, 311, __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, 311, __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, 311, __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, 311, __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, 313, __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, 313, __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, 314, __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, 314, __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, 314, __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, 314, __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, 315, __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, 315, __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, 315, __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, 315, __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, 317, __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, 9399, __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, 319, __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, 319, __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, 319, __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_TEMA_Lookback(__pyx_v_timeperiod)); + } + /*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, 321, __pyx_L1_error) - __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 321, __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; - __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, 321, __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_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_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, 322, __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, 322, __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, 322, __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, 322, __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, 322, __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, 322, __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, 322, __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, 322, __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, 323, __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, 324, __pyx_L1_error) - __pyx_t_10 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(2, 324, __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, 324, __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, 325, __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, 326, __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, 326, __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, 327, __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, 327, __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, 327, __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, 330, __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_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; - 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, 330, __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, 332, __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, 332, __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, 332, __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, 333, __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.TEMA", __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; @@ -103276,34 +108940,36 @@ 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_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_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_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("lookback (wrapper)", 0); + __Pyx_RefNannySetupContext("TRANGE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103313,351 +108979,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, 335, __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, 335, __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, "lookback", 0) < (0)) __PYX_ERR(2, 335, __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, 335, __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, 335, __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("lookback", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 335, __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.lookback", __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_24lookback(__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_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_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; - 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 *); + 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; - 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; + PyObject *__pyx_t_12 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("lookback", 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 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 341, __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_v_local = __pyx_t_1; + __Pyx_DECREF_SET(__pyx_v_high, ((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, 343, __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, 9432, __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, 343, __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, 343, __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, 344, __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, 344, __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, 344, __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, 344, __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, 344, __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, 344, __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, 344, __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, 344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_1); - __pyx_t_1 = __pyx_t_4; - __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 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, 345, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); - __pyx_t_4 = 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 346, __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, 346, __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, 346, __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_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_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __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, 347, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (!__pyx_t_11) { + __pyx_t_3 = (__pyx_v_length == 0); - } else { + if (__pyx_t_3) { - __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, 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_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 347, __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, 347, __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, 348, __pyx_L1_error) - __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 348, __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, 348, __pyx_L1_error) + { + 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); - goto __pyx_L5; - } + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9440, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 349, __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, 349, __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_TRANGE_Lookback()); + } - 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, 349, __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, 349, __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, 350, __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, 350, __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, 350, __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, 9444, __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_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:; + } } - __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, 353, __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, 355, __pyx_L1_error) + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - goto __pyx_L13; + __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_L12_error:; + __pyx_L8_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_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_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_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; { - __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, 355, __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_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_L13:; + __pyx_L9:; } - __pyx_t_1 = __Pyx_PyLong_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 356, __pyx_L1_error) + __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_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.TRANGE", __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_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XDECREF((PyObject *)__pyx_v_close); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -103665,34 +109303,35 @@ 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_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_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_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("output_names (wrapper)", 0); + __Pyx_RefNannySetupContext("TRIMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103702,109 +109341,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, 358, __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, 358, __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, "output_names", 0) < (0)) __PYX_ERR(2, 358, __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("output_names", 1, 1, 1, i); __PYX_ERR(2, 358, __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, 358, __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("output_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 358, __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.output_names", __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_26output_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, 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_26output_names(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { - PyObject *__pyx_v_ret = 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; - 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_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_names", 0); + __Pyx_RefNannySetupContext("TRIMA", 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, 363, __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, 363, __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, 363, __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_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, 9477, __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_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); - if (__pyx_t_7) { + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9481, __pyx_L1_error) + + /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __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_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 365, __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_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_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)); + } + + /*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_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; { __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); } @@ -103814,13 +109631,18 @@ 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.TRIMA", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -103828,34 +109650,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_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_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_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; + 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("TRIX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -103865,67 +109688,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, 368, __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(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, 368, __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, "outputs", 0) < (0)) __PYX_ERR(2, 368, __pyx_L3_error) + 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("outputs", 1, 1, 1, i); __PYX_ERR(2, 368, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TRIX", 0, 1, 2, i); __PYX_ERR(6, 9494, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - 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, 368, __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, 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(6, 9494, __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, 9496, __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, 368, __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.outputs", __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_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, 9496, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_460TRIX(__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_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 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; @@ -103933,443 +109788,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("TRIX", 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, 375, __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, 9515, __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, 376, __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, 376, __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, 9518, __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, 377, __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, 378, __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, 378, __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, 380, __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, 381, __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, 382, __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, 382, __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, 382, __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, 9522, __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_TRIX_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, 383, __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, 383, __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, 9526, __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, 384, __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, 385, __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, 385, __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, 385, __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, 385, __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, 385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_1; + __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_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, 387, __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, 387, __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, 387, __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, 387, __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, 389, __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, 387, __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, 387, __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, 387, __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, 390, __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, 391, __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, 391, __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, 391, __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, 392, __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, 393, __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, 393, __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, 393, __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, 395, __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, 395, __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, 395, __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, 395, __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, 396, __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, 395, __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, 395, __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, 395, __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, 398, __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, 398, __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_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; { - 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.TRIX", __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; @@ -104377,24 +109997,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_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_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_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_input_arrays = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -104405,7 +110025,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("run (wrapper)", 0); + __Pyx_RefNannySetupContext("TSF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -104415,131 +110035,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, 400, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9535, __pyx_L3_error) if (__pyx_kwds_len > 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, 400, __pyx_L3_error) + 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, 400, __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; - if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "run", 0) < (0)) __PYX_ERR(2, 400, __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, "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("run", 0, 1, 2, i); __PYX_ERR(2, 400, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("TSF", 0, 1, 2, i); __PYX_ERR(6, 9535, __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, 400, __pyx_L3_error) + 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, 400, __pyx_L3_error) + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[0])) __PYX_ERR(6, 9535, __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, 9537, __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, 400, __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_AddTraceback("talib._ta_lib.Function.run", __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_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, 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]); + } + 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_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 - 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("TSF", 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, 407, __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, 9556, __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, 9559, __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, 408, __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, 409, __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, 410, __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, 9563, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_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, 9567, __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_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)); + } + + /*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_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9573, __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.TSF", __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; @@ -104547,36 +110344,36 @@ 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_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_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_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; - PyObject *__pyx_v_args = 0; - PyObject *__pyx_v_kwargs = 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("__call__ (wrapper)", 0); + __Pyx_RefNannySetupContext("TSI (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -104585,982 +110382,323 @@ 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_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, 412, __pyx_L3_error) + if (unlikely(__pyx_kwds_len < 0)) __PYX_ERR(6, 9576, __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(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, 412, __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; - 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, 412, __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("__call__", 0, 1, 1, i); __PYX_ERR(2, 412, __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, 412, __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("__call__", 0, 1, 1, __pyx_nargs); __PYX_ERR(2, 412, __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_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.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_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, 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]); } - __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_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; - 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_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__call__", 0); - __Pyx_INCREF(__pyx_v_args); + __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, 419, __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, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 422, __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, 422, __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, 422, __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, 422, __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, 422, __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, 422, __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; + + { + 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_2)) __PYX_ERR(2, 422, __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, 422, __pyx_L1_error) - PyErr_Clear(); + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; } - break; + __pyx_L6:; } - } - __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, 421, __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, 421, __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, 421, __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, 421, __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, 421, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 421, __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, 421, __pyx_L1_error) - __pyx_t_3 = 0; + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); - __pyx_t_1 = 0; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9605, __pyx_L1_error) - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 423, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + /*try:*/ { - __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); - 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, 424, __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, 424, __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, 424, __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, 424, __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, 424, __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, 424, __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, 423, __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, 423, __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, 423, __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, 423, __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, 423, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 423, __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, 423, __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, 427, __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, 428, __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, 429, __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, 430, __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, 430, __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, 430, __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, 430, __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, 431, __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, 431, __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, 431, __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, 431, __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, 431, __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, 431, __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, 431, __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, 432, __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, 432, __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); + { + 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, 436, __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, 436, __pyx_L15_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - + __pyx_v_lookback = (__pyx_v_begidx + TA_TSI_Lookback(__pyx_v_firstperiod, __pyx_v_secondperiod)); } - __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, 437, __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, 439, __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, 439, __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, 440, __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, 438, __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, 441, __pyx_L17_except_error) - __Pyx_GOTREF(__pyx_t_20); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; } - __Pyx_Raise(__pyx_t_20, 0, 0, 0); - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __PYX_ERR(2, 441, __pyx_L17_except_error) + __pyx_L12:; } - 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, 443, __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, 444, __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, 444, __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, 444, __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, 445, __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, 445, __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, 446, __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, 447, __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, 447, __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, 447, __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, 448, __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, 448, __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, 450, __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_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_10 < 0))) __PYX_ERR(2, 450, __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, 450, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - - __pyx_v_no_existing_input_arrays = __pyx_t_1; + __pyx_v_outreal = ((PyArrayObject *)__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, 452, __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, 452, __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, 453, __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, 454, __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, 454, __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, 455, __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, 455, __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, 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_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, 456, __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, 456, __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, 456, __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, 458, __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, 458, __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, 459, __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; + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __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, 457, __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_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_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, 460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } } - __Pyx_Raise(__pyx_t_3, 0, 0, 0); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __PYX_ERR(2, 460, __pyx_L1_error) - } - __pyx_L31:; - __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, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 462, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 462, __pyx_L1_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, 462, __pyx_L1_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; + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __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, 463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __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, 466, __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, 466, __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, 466, __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, 466, __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, 466, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_3); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - #else - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 466, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 466, __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, 466, __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_L38_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_L38_unpacking_failed; - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 466, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L39_unpacking_done; - __pyx_L38_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, 466, __pyx_L1_error) - __pyx_L39_unpacking_done:; + goto __pyx_L9; } - __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, 467, __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, 467, __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, 467, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 468, __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, 468, __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, 468, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __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, 471, __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, 471, __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, 471, __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, 471, __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, 471, __pyx_L1_error) - __Pyx_XGOTREF(__pyx_t_1); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L23; + } + __pyx_L23:; + } + } } - #else - __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 471, __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, 471, __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_L43_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_L43_unpacking_failed; - __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_21(__pyx_t_2), 2) < (0)) __PYX_ERR(2, 471, __pyx_L1_error) - __pyx_t_21 = NULL; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L44_unpacking_done; - __pyx_L43_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, 471, __pyx_L1_error) - __pyx_L44_unpacking_done:; + __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_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, 472, __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, 472, __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, 472, __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, 473, __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, 473, __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, 473, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - + __pyx_L9:; } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __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_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_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_AddTraceback("talib._ta_lib.TSI", __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_XDECREF((PyObject *)__pyx_v_outreal); + __Pyx_XDECREF((PyObject *)__pyx_v_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -105568,34 +110706,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO /* 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_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_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_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("__input_price_series_names (wrapper)", 0); + __Pyx_RefNannySetupContext("TYPPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -105605,232 +110745,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, 478, __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, 478, __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, "__input_price_series_names", 0) < (0)) __PYX_ERR(2, 478, __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, 478, __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, 478, __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("__input_price_series_names", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 478, __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.__input_price_series_names", __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_34__input_price_series_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, 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_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_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; - 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; + 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("__input_price_series_names", 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, 479, __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_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 480, __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, 9638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__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, 481, __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); - 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, 481, __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, 481, __pyx_L1_error) + __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, 9640, __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, 9642, __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; - 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, 481, __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, 481, __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_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 (unlikely(!__pyx_t_1)) __PYX_ERR(2, 481, __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, 481, __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, 9646, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + } + + /*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, 482, __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, 9650, __pyx_L8_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, 482, __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, 482, __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_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_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)); + } - 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, 484, __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, 484, __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, 484, __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, 484, __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, 484, __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, 484, __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, 485, __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_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:*/ { - /*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, 487, __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_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_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_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(__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); } @@ -105840,16 +111048,20 @@ 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.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_input_name); - __Pyx_XDECREF(__pyx_v_price_series); - __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; @@ -105857,34 +111069,39 @@ 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_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_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_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; + 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[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("__call_function (wrapper)", 0); + __Pyx_RefNannySetupContext("ULTOSC (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -105894,504 +111111,368 @@ PyObject *__pyx_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_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, 490, __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(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(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, 490, __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, "__call_function", 0) < (0)) __PYX_ERR(2, 490, __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, 490, __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("ULTOSC", 0, 3, 6, i); __PYX_ERR(6, 9659, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - 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, 490, __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]; } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("__call_function", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 490, __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.__call_function", __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_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, 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_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_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; - 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("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, 491, __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_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, 492, __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, 9683, __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, 495, __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_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, 496, __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, 496, __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, 496, __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, 496, __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, 496, __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, 496, __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, 497, __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, 497, __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, 498, __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, 499, __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, 499, __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, 9685, __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, 500, __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, 9687, __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, 500, __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, 501, __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, 502, __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, 502, __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, 503, __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, 503, __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, 504, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9691, __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, 505, __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, 505, __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, 505, __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, 505, __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, 505, __pyx_L1_error) - #endif - if (__pyx_t_4 >= __pyx_temp) break; + __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); } - #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, 505, __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, 505, __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, 9695, __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, 506, __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, 507, __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, 510, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 510, __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, 510, __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_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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 512, __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, 512, __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, 514, __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, 515, __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, 515, __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, 515, __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, 517, __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, 517, __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, 517, __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, 517, __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, 517, __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, 517, __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, 517, __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, 517, __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, 518, __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, 518, __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, 518, __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_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((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, 519, __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.ULTOSC", __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; @@ -106399,25 +111480,25 @@ 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_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_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_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; - PyObject *__pyx_v_value = 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 @@ -106428,7 +111509,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__check_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); @@ -106438,251 +111519,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,&__pyx_mstate_global->__pyx_n_u_value,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, 521, __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(2, 521, __pyx_L3_error) + 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, 521, __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, 521, __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, "__check_opt_input_value", 0) < (0)) __PYX_ERR(2, 521, __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, 521, __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 != 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, 521, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 521, __pyx_L3_error) - values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 521, __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]; - __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, 521, __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.__check_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_38__check_opt_input_value(__pyx_self, __pyx_v_self, __pyx_v_input_name, __pyx_v_value); + 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_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_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; - PyObject *__pyx_t_5 = NULL; + char const *__pyx_t_5; 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; + 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("__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, 522, __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, 522, __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, 522, __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, 522, __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_RefNannySetupContext("VAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __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, 523, __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_t_4 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_2, __pyx_t_1, Py_EQ); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(2, 523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_4) { - - } else { + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - __pyx_t_3 = __pyx_t_4; + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[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, 523, __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, 523, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_v_length == 0); - __pyx_t_3 = __pyx_t_4; + if (__pyx_t_2) { - __pyx_L4_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __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, 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; - if (__pyx_t_4) { + } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_INCREF((PyObject *)(&PyLong_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyLong_Type))); + __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_L3; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L6; + } + __pyx_L6:; + } } - __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, 525, __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, 525, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (!__pyx_t_3) { - - } else { + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - __pyx_t_4 = __pyx_t_3; + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9733, __pyx_L1_error) - 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, 525, __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, 525, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /*try:*/ { - __pyx_t_4 = __pyx_t_3; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_L6_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_3 = __pyx_t_4; + __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:; + } + } - if (__pyx_t_3) { + __pyx_t_1 = ((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_INCREF((PyObject *)(&PyFloat_Type)); - __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); + __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:; + } + } } - __pyx_L3:; - __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 528, __pyx_L1_error) - if (__pyx_t_3) { + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __Pyx_INCREF(Py_True); - __pyx_r = Py_True; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L18; + } + __pyx_L18:; + } } - __Pyx_XDECREF(__pyx_temp); + goto __pyx_L9; } - goto __pyx_L0; - - } - - __pyx_t_3 = (__pyx_v_value != Py_None); - if (unlikely(__pyx_t_3)) { - + __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 = NULL; + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __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, 533, __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, 533, __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, 533, __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, 533, __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, 533, __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, 532, __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, 531, __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_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_Raise(__pyx_t_2, 0, 0, 0); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __PYX_ERR(2, 531, __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(Py_False); - __pyx_r = Py_False; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -106692,15 +111823,18 @@ 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.VAR", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -106708,24 +111842,24 @@ 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_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_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_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; - PyObject *__pyx_v_input_name = 0; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -106736,7 +111870,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__get_opt_input_value (wrapper)", 0); + __Pyx_RefNannySetupContext("VHF (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -106746,128 +111880,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_name,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, 536, __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(2, 536, __pyx_L3_error) + 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, 536, __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, "__get_opt_input_value", 0) < (0)) __PYX_ERR(2, 536, __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, 536, __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("VHF", 0, 1, 2, i); __PYX_ERR(6, 9746, __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, 536, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 536, __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]; - __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, 536, __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.__get_opt_input_value", __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_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, 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_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_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("__get_opt_input_value", 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_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 540, __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_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, 541, __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, 541, __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, 541, __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, 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_default_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 543, __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, 9770, __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); + { + 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_value); - __pyx_r = __pyx_v_value; - } - __Pyx_XDECREF(__pyx_temp); - } - 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))); + } - /* 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); + /*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_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.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; @@ -106875,34 +112189,36 @@ 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_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_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_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("__repr__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VIDYA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -106912,88 +112228,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, 546, __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, 546, __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, "__repr__", 0) < (0)) __PYX_ERR(2, 546, __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("__repr__", 1, 1, 1, i); __PYX_ERR(2, 546, __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, 546, __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("__repr__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 546, __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.__repr__", __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_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, 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_42__repr__(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; + 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("VIDYA", 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, 547, __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, 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; + + } + + { + 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:; + } + } + } + + /*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_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_mstate_global->__pyx_kp_u_s_2, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 547, __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.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; @@ -107001,34 +112551,37 @@ 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_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_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_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("__unicode__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VORTEX (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107038,97 +112591,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, 549, __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, 549, __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, "__unicode__", 0) < (0)) __PYX_ERR(2, 549, __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, 549, __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, 549, __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("__unicode__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 549, __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.__unicode__", __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_44__unicode__(__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_44__unicode__(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; - 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("__unicode__", 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 = __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, 550, __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, 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; + } - __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 550, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __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_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, 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_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 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.Function.__unicode__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("talib._ta_lib.VORTEX", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; + + + + + + + + __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; @@ -107136,34 +112963,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_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_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_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 ) { - PyObject *__pyx_v_self = 0; + 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("__str__ (wrapper)", 0); + __Pyx_RefNannySetupContext("VWAP (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107173,117 +113003,338 @@ PyObject *__pyx_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_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, 552, __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, 552, __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, "__str__", 0) < (0)) __PYX_ERR(2, 552, __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, 552, __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, 552, __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_self = values[0]; + __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("__str__", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 552, __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.Function.__str__", __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_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, 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_8Function_46__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { +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; + 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; + 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("__str__", 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, 9894, __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, 9895, __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, 9896, __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, 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_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; + + __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, 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; - __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, 553, __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, 553, __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, 553, __pyx_L1_error) + 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:; + } + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 9904, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_VWAP_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, 9908, __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_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)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - __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, 553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + + /*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_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_r = __pyx_t_3; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __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_AddTraceback("talib._ta_lib.VWAP", __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_XDECREF((PyObject *)__pyx_v_volume); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -107291,332 +113342,342 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyOb /* 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; +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_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 +) { + 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}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; 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); + __Pyx_RefNannySetupContext("VWMA (wrapper)", 0); + #if !CYTHON_VECTORCALL + #if CYTHON_ASSUME_SAFE_SIZE + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 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,&__pyx_mstate_global->__pyx_n_u_timeperiod,0}; + const Py_ssize_t __pyx_kwds_len = (__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; + 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(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(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, "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("VWMA", 0, 2, 3, i); __PYX_ERR(6, 9917, __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, 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)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_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.VWMA", __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, 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; + __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_430_ta_getGroupTable(CYTHON_UNUSED PyObject *__pyx_self) { - TA_StringTable *__pyx_v_table; +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; - PyObject *__pyx_v_groups = 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_getGroupTable", 0); + __Pyx_RefNannySetupContext("VWMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __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, 572, __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, 572, __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, 572, __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, 572, __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_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; - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __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_v_retCode = TA_GroupTableAlloc((&__pyx_v_table)); - } + __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; - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } + __pyx_t_3 = (__pyx_v_length == 0); - __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, 575, __pyx_L7_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_3) { - /*try:*/ { - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 577, __pyx_L17_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_groups = ((PyObject*)__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, 9943, __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_10 = __pyx_v_table->size; - __pyx_t_11 = __pyx_t_10; + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) { - __pyx_v_i = __pyx_t_12; + __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_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 579, __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, 579, __pyx_L17_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /*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, 9947, __pyx_L1_error) - /*finally:*/ { - /*normal exit:*/{ - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + /*try:*/ { - __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L23; - } - __pyx_L23:; - } - } + __pyx_v_lookback = (__pyx_v_begidx + TA_VWMA_Lookback(__pyx_v_timeperiod)); + } - __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, 583, __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; - { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_1 = ((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; - __pyx_v_retCode = TA_GroupTableFree(__pyx_v_table); - } + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L28; - } - __pyx_L28:; - } - } + __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_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, 583, __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:; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; } - + __pyx_L15:; } - __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, 572, __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, 572, __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, 572, __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, 572, __pyx_L9_except_error) - __pyx_t_24 = (!__pyx_t_23); + } + } + /*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, 572, __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, 572, __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_groups)) { __Pyx_RaiseUnboundLocalError("groups"); __PYX_ERR(2, 584, __pyx_L1_error) } + __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_INCREF(__pyx_v_groups); - __pyx_r = __pyx_v_groups; + __Pyx_INCREF((PyObject *)__pyx_v_outreal); + __pyx_r = ((PyObject *)__pyx_v_outreal); } __Pyx_XDECREF(__pyx_temp); } @@ -107626,16 +113687,19 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_430_ta_getGroupTable(CYTHON_UNUSED PyO /* 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_AddTraceback("talib._ta_lib.VWMA", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_groups); + + + + + __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; @@ -107643,34 +113707,36 @@ 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_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_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_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_group; + 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_getFuncTable (wrapper)", 0); + __Pyx_RefNannySetupContext("WAD (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -107680,365 +113746,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_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,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, 586, __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, 586, __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_getFuncTable", 0) < (0)) __PYX_ERR(2, 586, __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, 586, __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, 586, __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_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 586, __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_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 586, __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_getFuncTable", __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_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, 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_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_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; - 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); - - /*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, 592, __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, 592, __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, 592, __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, 592, __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_RefNannySetupContext("WAD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __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; - __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_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; - /*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_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_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, 595, __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_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; - /*try:*/ { + __pyx_t_3 = (__pyx_v_length == 0); - __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 597, __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, 9984, __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, 599, __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, 599, __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_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:*/{ - { - 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, 9988, __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, 603, __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_WAD_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, 9992, __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, 603, __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_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_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, 592, __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, 592, __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, 592, __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, 592, __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, 592, __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, 592, __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, 604, __pyx_L1_error) } + __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_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); } @@ -108048,16 +114049,20 @@ 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.WAD", __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_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -108065,35 +114070,39 @@ 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_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_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_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 ) { - int __pyx_v_flag; - PyObject *__pyx_v_flags_lookup_dict = 0; + 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("__get_flags (wrapper)", 0); + __Pyx_RefNannySetupContext("WAVETREND (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -108103,53 +114112,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_flag,&__pyx_mstate_global->__pyx_n_u_flags_lookup_dict,0}; + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__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, 606, __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, 606, __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, 606, __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, "__get_flags", 0) < (0)) __PYX_ERR(2, 606, __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, 606, __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, 606, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 606, __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_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 606, __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, 606, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __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)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_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.__get_flags", __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:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flags_lookup_dict), (&PyDict_Type), 1, "flags_lookup_dict", 1))) __PYX_ERR(2, 606, __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_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; @@ -108165,170 +114225,286 @@ PyObject *__pyx_args, PyObject *__pyx_kwds } __pyx_L7_cleaned_up:; + + __Pyx_RefNannyFinishContext(); 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_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; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + PyArrayObject *__pyx_v_outwt1 = 0; + PyArrayObject *__pyx_v_outwt2 = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_t_3; 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 *); + 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("__get_flags", 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_v_flag < 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; - if (__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, 10027, __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, 10028, __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, 10029, __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, 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 = Py_None; __Pyx_INCREF(Py_None); + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } + __pyx_t_5 = 0; goto __pyx_L0; } - __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 616, __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, 617, __pyx_L1_error) - } - __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 617, __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, 617, __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, 617, __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, 617, __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, 617, __pyx_L1_error) + __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 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, 617, __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, 617, __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, 617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 617, __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, 617, __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, 617, __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, 617, __pyx_L1_error) - __pyx_L7_unpacking_done:; + } + + __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10035, __pyx_L1_error) + + /*try:*/ { + + { + 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)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } } - __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, 618, __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, 618, __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, 618, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__pyx_t_1) { + __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_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; + + { + 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)); + } + + /*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:*/ { - if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, __pyx_v_description))) __PYX_ERR(2, 616, __pyx_L1_error) + __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_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + __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_2; + __pyx_r = __pyx_t_5; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __pyx_t_5 = 0; goto __pyx_L0; /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __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_5); + __Pyx_AddTraceback("talib._ta_lib.WAVETREND", __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_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; @@ -108336,34 +114512,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_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_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_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; + 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("WCLPRICE (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -108373,67 +114551,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, 659, __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(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, 659, __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_getFuncInfo", 0) < (0)) __PYX_ERR(2, 659, __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, 659, __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 != 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, 659, __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(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, 659, __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, 659, __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_getFuncInfo", __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_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, 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_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_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; + 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; @@ -108443,290 +114651,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("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, 665, __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, 667, __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, 667, __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, 667, __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, 10069, __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, 10070, __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, 10071, __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, 10073, __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, 667, __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, 667, __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, 10077, __pyx_L1_error) + + /*try:*/ { + + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + + __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_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, 670, __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, 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(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 673, __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, 673, __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, 673, __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, 673, __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, 673, __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, 674, __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, 674, __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, 674, __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, 673, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __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_t_11 = NULL; - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_mstate_global->__pyx_n_u_bytes2str); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 675, __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, 675, __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, 675, __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, 673, __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, 676, __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, 676, __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, 676, __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, 676, __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, 673, __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, 677, __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, 677, __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, 673, __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, 678, __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, 678, __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, 673, __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, 679, __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, 679, __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, 673, __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_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; + { 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.WCLPRICE", __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; @@ -108734,35 +114875,37 @@ 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_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_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_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_getInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WILLR (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -108772,314 +114915,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, 682, __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, 682, __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, 682, __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_getInputParameterInfo", 0) < (0)) __PYX_ERR(2, 682, __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, 682, __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, 682, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 682, __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, 682, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 682, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 682, __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_getInputParameterInfo", __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_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, 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_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_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; - PyObject *__pyx_t_13 = NULL; - PyObject *__pyx_t_14 = 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_getInputParameterInfo", 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, 688, __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, 690, __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, 690, __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, 690, __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, 690, __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_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, 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, 690, __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_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 693, __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, 695, __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, 695, __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, 695, __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, 696, __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, 696, __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, 696, __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_PySequence_ContainsTF(__pyx_mstate_global->__pyx_n_u_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_12 < 0))) __PYX_ERR(2, 697, __pyx_L1_error) - if (__pyx_t_12) { + __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_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 698, __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, 698, __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_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); - goto __pyx_L17; - } + __pyx_f_5talib_7_ta_lib__ta_acquire_read(); if (unlikely(PyErr_Occurred())) __PYX_ERR(6, 10120, __pyx_L1_error) - __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, 699, __pyx_L1_error) - if (__pyx_t_12) { + /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __Pyx_INCREF(__pyx_mstate_global->__pyx_n_u_prices); - __Pyx_DECREF_SET(__pyx_v_name, __pyx_mstate_global->__pyx_n_u_prices); + __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + } - } - __pyx_L17:; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 703, __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, 703, __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, 10124, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_outreal = ((PyArrayObject *)__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, 704, __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, 704, __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, 704, __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; + { + 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)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } } - #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, 704, __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_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_6, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_2) < (0)) __PYX_ERR(2, 703, __pyx_L1_error) - __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_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; + { 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_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_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; @@ -109087,24 +115256,24 @@ 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_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_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_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 ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; #if !CYTHON_VECTORCALL CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif @@ -109115,7 +115284,7 @@ PyObject *__pyx_args, PyObject *__pyx_kwds int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo (wrapper)", 0); + __Pyx_RefNannySetupContext("WMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109125,341 +115294,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_function_name,&__pyx_mstate_global->__pyx_n_u_idx,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, 707, __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(2, 707, __pyx_L3_error) + 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, 707, __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, "_ta_getOptInputParameterInfo", 0) < (0)) __PYX_ERR(2, 707, __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, 707, __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("WMA", 0, 1, 2, i); __PYX_ERR(6, 10133, __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, 707, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 707, __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_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 707, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 707, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 707, __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._ta_getOptInputParameterInfo", __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_440_ta_getOptInputParameterInfo(__pyx_self, __pyx_v_function_name, __pyx_v_idx); + 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_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_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; - 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_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; - Py_ssize_t __pyx_t_11; - 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("_ta_getOptInputParameterInfo", 0); + __Pyx_RefNannySetupContext("WMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __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, 713, __pyx_L1_error) - __pyx_v_handle = __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, 10154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((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, 715, __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, 715, __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, 715, __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, 715, __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_v_length = (__pyx_f_5numpy_7ndarray_5shape___get__(__pyx_v_real)[0]); - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_t_2 = (__pyx_v_length == 0); - __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_v_handle, __pyx_v_idx, (&__pyx_v_info)); - } + if (__pyx_t_2) { - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; - } - } - } + __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); } - /*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, 715, __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_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; } - 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, 718, __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, 720, __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, 720, __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, 720, __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, 10161, __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, 721, __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, 721, __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, 721, __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_WMA_Lookback(__pyx_v_timeperiod)); + } - if (__pyx_t_12) { - __pyx_t_6 = PyLong_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 722, __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, 722, __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, 10165, __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, 725, __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, 725, __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, 726, __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, 726, __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, 726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __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)); + } + + /*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, 725, __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, 727, __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, 725, __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, 728, __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, 728, __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, 728, __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_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:; } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_help, __pyx_t_6) < (0)) __PYX_ERR(2, 725, __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, 725, __pyx_L1_error) + __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; - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 725, __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.WMA", __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_real); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; @@ -109467,35 +115603,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_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_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_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 ) { - char *__pyx_v_function_name; - int __pyx_v_idx; + 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[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("ZIGZAG (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109505,345 +115643,421 @@ PyObject *__pyx_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_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(2, 733, __pyx_L3_error) + 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(2, 733, __pyx_L3_error) + 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(2, 733, __pyx_L3_error) + 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, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 733, __pyx_L3_error) + 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("_ta_getOutputParameterInfo", 1, 2, 2, i); __PYX_ERR(2, 733, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZIGZAG", 0, 2, 4, i); __PYX_ERR(6, 10174, __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, 733, __pyx_L3_error) - values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); - if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 733, __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, 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_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)); } - __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 733, __pyx_L3_error) - __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 733, __pyx_L3_error) } goto __pyx_L6_skip; __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 733, __pyx_L3_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._ta_getOutputParameterInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZIGZAG", __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, 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); /* 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_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; - PyObject *__pyx_v_name = NULL; + 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 - 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; - PyObject *__pyx_t_9 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; 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_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("_ta_getOutputParameterInfo", 0); + __Pyx_RefNannySetupContext("ZIGZAG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); - __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, 739, __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, 10200, __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, 741, __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, 741, __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, 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_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 = 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, 741, __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_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_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, 741, __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:*/ { - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_6; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_6 = 0; + goto __pyx_L0; - __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:; - } - } + { + 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_high)), ((double *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_low))); } - } - /*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, 741, __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_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_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 744, __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, 746, __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, 746, __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, 746, __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, 10208, __pyx_L1_error) - __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, 747, __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, 747, __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, 747, __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_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, 749, __pyx_L1_error) - if (__pyx_t_13) { + __pyx_v_lookback = (__pyx_v_begidx + TA_ZIGZAG_Lookback(__pyx_v_sensitivity, __pyx_v_mintrendlength)); + } - } else { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L12; + } + __pyx_L12:; + } + } - __pyx_t_12 = __pyx_t_13; + __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; - 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, 749, __pyx_L1_error) - if (__pyx_t_14) { + __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; - } else { + __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; - __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_real0, Py_NE); if (unlikely((__pyx_t_14 < 0))) __PYX_ERR(2, 749, __pyx_L1_error) - if (__pyx_t_14) { + __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)); + } - } else { + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + } - __pyx_t_13 = __pyx_t_14; + /*finally:*/ { + /*normal exit:*/{ + { + 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, 749, __pyx_L1_error) + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - __pyx_t_13 = __pyx_t_14; + /*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; + { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_L20_bool_binop_done:; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = __pyx_t_13; + __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_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_t_12 = __pyx_t_14; + __pyx_v_outpivotidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data___get__(__pyx_v_outpivotidx)); - __pyx_L18_bool_binop_done:; - if (__pyx_t_12) { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { + __pyx_t_2 = __pyx_v_length; - __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, 750, __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, 750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { - __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); - __pyx_t_2 = 0; - } + __pyx_t_8 = __pyx_v_i; + (__pyx_v_outpivotidx_data[__pyx_t_8]) = ((__pyx_v_outpivotidx_data[__pyx_t_8]) + __pyx_v_begidx); + } - __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 753, __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, 753, __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, 754, __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, 754, __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, 754, __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, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L26; + } + __pyx_L26:; + } } - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_flags, __pyx_t_6) < (0)) __PYX_ERR(2, 753, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + __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_2; + __pyx_r = __pyx_t_6; } __Pyx_XDECREF(__pyx_temp); } - __pyx_t_2 = 0; + __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_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __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_AddTraceback("talib._ta_lib.ZIGZAG", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; - __Pyx_XDECREF(__pyx_v_name); + + + + + __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; @@ -109851,34 +116065,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_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_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_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 ) { - 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("ZLEMA (wrapper)", 0); #if !CYTHON_VECTORCALL #if CYTHON_ASSUME_SAFE_SIZE __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); @@ -109888,851 +116103,63586 @@ PyObject *__pyx_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, 757, __pyx_L3_error) + 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(2, 757, __pyx_L3_error) + 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, "_get_defaults_and_docs", 0) < (0)) __PYX_ERR(2, 757, __pyx_L3_error) + 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("_get_defaults_and_docs", 1, 1, 1, i); __PYX_ERR(2, 757, __pyx_L3_error) } + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("ZLEMA", 0, 1, 2, i); __PYX_ERR(6, 10227, __pyx_L3_error) } } - } else if (unlikely(__pyx_nargs != 1)) { - 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, 757, __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, 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_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)); } - __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, 757, __pyx_L3_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._get_defaults_and_docs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_AddTraceback("talib._ta_lib.ZLEMA", __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, 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]); } - __Pyx_RefNannyFinishContext(); + 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_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; - 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("ZLEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 763, __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, 10248, __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, 764, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 764, __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, 764, __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, 764, __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, 765, __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, 765, __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, 766, __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, 767, __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, 767, __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, 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; - __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, 769, __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, 770, __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, 771, __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, 771, __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, 771, __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, 771, __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, 771, __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, 771, __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, 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:; } - 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, 772, __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, 10259, __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_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)); + } - 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, 775, __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, 775, __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, 775, __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, 775, __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_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); } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + 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_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, 777, __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, 778, __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, 779, __pyx_L1_error) + __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, 75, __pyx_L3_error) + if (__pyx_kwds_len > 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, 75, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 75, __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, 75, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 75, __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, 75, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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); - 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, 780, __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, 780, __pyx_L1_error) + /* function exit code */ + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); } - 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, 780, __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, 780, __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_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, 76, __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, 78, __pyx_L3_error) + if (__pyx_kwds_len > 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, 78, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; } - if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 780, __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, 780, __pyx_L1_error) - PyErr_Clear(); - } - break; + const Py_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, 78, __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, 78, __pyx_L3_error) } } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 78, __pyx_L3_error) } - __Pyx_GOTREF(__pyx_t_12); - __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_12); - __pyx_t_12 = 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, 78, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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); - __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, 781, __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, 781, __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, 781, __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, 781, __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, 781, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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]); + } + __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_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_param), __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_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 782, __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, 782, __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, 782, __pyx_L1_error) + __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, 79, __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, 782, __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_1 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 783, __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, 783, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* 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; +} - __pyx_t_12 = __pyx_v_param; - __Pyx_INCREF(__pyx_t_12); - __pyx_t_14 = 0; + +/* 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, 83, __pyx_L3_error) + if (__pyx_kwds_len > 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, 83, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 83, __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, 83, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 83, __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, 83, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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; { - 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, 784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; } - __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - if (__pyx_t_7) { + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; - __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, 785, __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, 785, __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, 785, __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, 785, __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, 785, __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, 785, __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, 785, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_8); - if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 785, __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, 785, __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, 785, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* 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, 86, __pyx_L3_error) + if (__pyx_kwds_len > 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, 86, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 86, __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, 86, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 86, __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, 86, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - __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, 787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_outputs = __pyx_t_2; - __pyx_t_2 = 0; +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); - __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, 788, __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, 788, __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; + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_b); + __pyx_r = __pyx_v_b; + } + __Pyx_XDECREF(__pyx_temp); } - __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 788, __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, 788, __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, 788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + goto __pyx_L0; - __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, 789, __pyx_L1_error) + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - 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, 790, __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, 790, __pyx_L1_error) +/* 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; } - 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, 790, __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, 790, __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; + __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, 118, __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, 118, __pyx_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, 118, __pyx_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, 118, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; } - if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 790, __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, 790, __pyx_L1_error) - PyErr_Clear(); - } - 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, 118, __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, 118, __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, 118, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 118, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 118, __pyx_L3_error) } - __Pyx_GOTREF(__pyx_t_8); - __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_8); - __pyx_t_8 = 0; + __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, 118, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (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, 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_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_mstate_global->__pyx_n_u_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 121, __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, 121, __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, 122, __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, 122, __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, 122, __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, 122, __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, 125, __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, 125, __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, 125, __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, 125, __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, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 128, __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, 128, __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, 129, __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, 131, __pyx_L3_error) + if (__pyx_kwds_len > 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, 131, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 131, __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, 131, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 131, __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, 131, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 133, __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, 134, __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, 135, __pyx_L1_error) + + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 136, __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, 136, __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_input_names, __pyx_t_1) < (0)) __PYX_ERR(2, 139, __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, 140, __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, 140, __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, 140, __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, 141, __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, 141, __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, 141, __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, 142, __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, 145, __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, 145, __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, 145, __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, 145, __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, 148, __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, 148, __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, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 148, __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, 148, __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, 148, __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, 149, __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, 149, __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, 149, __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, 150, __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, 151, __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, 152, __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, 152, __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, 152, __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, 153, __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, 153, __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, 154, __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, 154, __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, 154, __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, 157, __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, 157, __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, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 157, __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, 157, __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, 157, __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, 158, __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, 158, __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, 158, __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, 159, __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, 160, __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, 160, __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, 161, __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, 161, __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, 161, __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, 164, __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, 164, __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, 164, __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, 164, __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, 165, __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, 165, __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, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 165, __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, 165, __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, 165, __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, 166, __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, 166, __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, 166, __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, 167, __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, 168, __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, 168, __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, 168, __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, 168, __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, 169, __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, 169, __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, 170, __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, 170, __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, 170, __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, 173, __pyx_L3_error) + if (__pyx_kwds_len > 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, 173, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 173, __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, 173, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 173, __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, 173, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 178, __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, 178, __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, 178, __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, 180, __pyx_L3_error) + if (__pyx_kwds_len > 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, 180, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 180, __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, 180, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 180, __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, 180, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 185, __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, 185, __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, 185, __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, 187, __pyx_L3_error) + if (__pyx_kwds_len > 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, 187, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 187, __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, 187, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 187, __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, 187, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 192, __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, 192, __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, 192, __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, 192, __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, 194, __pyx_L3_error) + if (__pyx_kwds_len > 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, 194, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 194, __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, 194, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 194, __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, 194, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 199, __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, 200, __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, 200, __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, 201, __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, 201, __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, 201, __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, 201, __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, 201, __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, 201, __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, 201, __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, 202, __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, 202, __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, 202, __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, 202, __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, 205, __pyx_L3_error) + if (__pyx_kwds_len > 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, 205, __pyx_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, 205, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 205, __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, 205, __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, 205, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 205, __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, 205, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 209, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __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, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 210, __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, 210, __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, 210, __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, 210, __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, 211, __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, 211, __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, 211, __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, 212, __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, 212, __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, 212, __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, 213, __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, 217, __pyx_L3_error) + if (__pyx_kwds_len > 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, 217, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 217, __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, 217, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 217, __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, 217, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 221, __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, 222, __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, 223, __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, 223, __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, 223, __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, 224, __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, 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; + + } + + /*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, 226, __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, 226, __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, 228, __pyx_L3_error) + if (__pyx_kwds_len > 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, 228, __pyx_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, 228, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 228, __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, 228, __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, 228, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 228, __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, 228, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 253, __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, 254, __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, 254, __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, 255, __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, 256, __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, 256, __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, 256, __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, 256, __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, 256, __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, 256, __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, 256, __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, 257, __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, 258, __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, 258, __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, 259, __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, 259, __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, 259, __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, 261, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 261, __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, 262, __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, 263, __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, 264, __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, 265, __pyx_L1_error) + + if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_outputs_valid, Py_False) < (0)) __PYX_ERR(2, 266, __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, 270, __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, 270, __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, 272, __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, 269, __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, 269, __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, 269, __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, 277, __pyx_L3_error) + if (__pyx_kwds_len > 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, 277, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 277, __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, 277, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 277, __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, 277, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 281, __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, 282, __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, 282, __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, 283, __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, 283, __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, 283, __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, 283, __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, 283, __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, 283, __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, 283, __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, 284, __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, 284, __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, 287, __pyx_L3_error) + if (__pyx_kwds_len > 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, 287, __pyx_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, 287, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + 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, 287, __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, 287, __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, 287, __pyx_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, 287, __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, 287, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (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, 291, __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, 292, __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, 292, __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, 293, __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, 294, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __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, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 295, __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, 295, __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, 295, __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, 295, __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__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, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + } + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF(__pyx_v_param); + __Pyx_GIVEREF(__pyx_v_param); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_param) != (0)) __PYX_ERR(2, 294, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_3) != (0)) __PYX_ERR(2, 294, __pyx_L1_error); + __pyx_t_3 = 0; + __Pyx_GIVEREF(__pyx_t_9); + if (unlikely(__Pyx_ListComp_AppendAndDecref(__pyx_t_1, __pyx_t_9))) __PYX_ERR(2, 294, __pyx_L1_error) + __pyx_t_9 = 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, 296, __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, 296, __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, 296, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); + __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + } else { + __pyx_t_9 = __Pyx_PyList_GET_ITEM_REF(sequence, 0, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_9); + __pyx_t_3 = __Pyx_PyList_GET_ITEM_REF(sequence, 1, __Pyx_ReferenceSharing_SharedReference); + if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_t_3); + } + #else + __pyx_t_9 = __Pyx_PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #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, 296, __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_9 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + index = 1; __pyx_t_3 = __pyx_t_11(__pyx_t_8); if (unlikely(!__pyx_t_3)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_8), 2) < (0)) __PYX_ERR(2, 296, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L13_unpacking_done; + __pyx_L12_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, 296, __pyx_L1_error) + __pyx_L13_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_9); + __pyx_t_9 = 0; + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); + __pyx_t_3 = 0; + + __pyx_t_2 = (__pyx_v_value != Py_None); + if (__pyx_t_2) { + + + __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, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_param); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 298, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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, 299, __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, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_1) < 0))) __PYX_ERR(2, 300, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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, 304, __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, 304, __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, 304, __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, 304, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + 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, 304, __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, 304, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (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; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + PyObject *(*__pyx_t_11)(PyObject *); + PyObject *__pyx_t_12 = NULL; + int __pyx_t_13; + 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, 308, __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, 311, __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, 311, __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, 312, __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, 312, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_key, __pyx_t_9}; + __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__opt_input_value, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_7 = (__pyx_v_value != Py_None); + if (__pyx_t_7) { + + + __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, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 315, __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, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_v_update_info = 1; + + } + + goto __pyx_L5; + } + + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_9, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 317, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__pyx_t_7) { + + + __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __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, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_price_series, __pyx_t_9) < 0))) __PYX_ERR(2, 318, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_mstate_global->__pyx_n_u_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 319, __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_key, __pyx_t_9) < 0))) __PYX_ERR(2, 319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 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, 321, __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_9 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_9); + __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyLong_From_long, 0, 1, 1, __Pyx_ReferenceSharing_FunctionArgument); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_10 = 0; + { + PyObject *__pyx_callargs[2] = {__pyx_t_9, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_set_input_arrays, __pyx_callargs+__pyx_t_10, (2-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 323, __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, 323, __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, 325, __pyx_L1_error) + __pyx_t_1 = PyLong_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 325, __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, 325, __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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_mstate_global->__pyx_n_u_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) { + __pyx_t_9 = __pyx_t_5; __Pyx_INCREF(__pyx_t_9); + __pyx_t_3 = 0; + __pyx_t_11 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11 = (CYTHON_COMPILING_IN_LIMITED_API) ? PyIter_Next : __Pyx_PyObject_GetIterNextFunc(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 326, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + for (;;) { + if (likely(!__pyx_t_11)) { + if (likely(PyList_CheckExact(__pyx_t_9))) { + { + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_9); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 326, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + __pyx_t_5 = __Pyx_PyList_GET_ITEM_REF(__pyx_t_9, __pyx_t_3, __Pyx_ReferenceSharing_OwnStrongReference); + ++__pyx_t_3; + } else { + { + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_9); + #if !CYTHON_ASSUME_SAFE_SIZE + if (unlikely((__pyx_temp < 0))) __PYX_ERR(2, 326, __pyx_L1_error) + #endif + if (__pyx_t_3 >= __pyx_temp) break; + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = __Pyx_NewRef(PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_3)); + #else + __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_9, __pyx_t_3); + #endif + ++__pyx_t_3; + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 326, __pyx_L1_error) + } else { + __pyx_t_5 = __pyx_t_11(__pyx_t_9); + 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, 326, __pyx_L1_error) + PyErr_Clear(); + } + break; + } + } + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_INCREF(__pyx_t_1); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); + __pyx_t_5 = __Pyx_PyLong_AddObjC(__pyx_t_1, __pyx_mstate_global->__pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); + __pyx_t_1 = __pyx_t_5; + __pyx_t_5 = 0; + + __pyx_t_5 = __Pyx_PyNumber_InPlaceAdd_object_int(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(2, 328, __pyx_L1_error) + __pyx_t_5 = PyLong_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + __pyx_t_7 = __Pyx_PyObject_CompareBoolLt_object_int(__pyx_v_i, __pyx_t_5, Py_LT); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(2, 328, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__pyx_t_7) { + + + __pyx_t_8 = __pyx_v_self; + __Pyx_INCREF(__pyx_t_8); + __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_10 = 0; + { + PyObject *__pyx_callargs[3] = {__pyx_t_8, __pyx_v_param_name, __pyx_t_12}; + __pyx_t_5 = __Pyx_PyObject_FastCallMethod((PyObject*)__pyx_mstate_global->__pyx_n_u_Function__opt_input_value, __pyx_callargs+__pyx_t_10, (3-__pyx_t_10) | (1*__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET)); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); + __pyx_t_5 = 0; + + __pyx_t_7 = (__pyx_v_value != Py_None); + if (__pyx_t_7) { + + + __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, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_param_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely((PyObject_SetItem(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_value, __pyx_v_value) < 0))) __PYX_ERR(2, 331, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + __pyx_v_update_info = 1; + + } + + } + + } + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 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, 334, __pyx_L1_error) + __pyx_t_13 = (__pyx_temp != 0); + } + + if (!__pyx_t_13) { + + } else { + + __pyx_t_7 = __pyx_t_13; + + 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, 334, __pyx_L1_error) + __pyx_t_13 = (__pyx_temp != 0); + } + + + __pyx_t_7 = __pyx_t_13; + + __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, 336, __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, 336, __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, 336, __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, 337, __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_9); + __Pyx_XDECREF(__pyx_t_12); + __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, 339, __pyx_L3_error) + if (__pyx_kwds_len > 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, 339, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 339, __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, 339, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 339, __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, 339, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 345, __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, 347, __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, 347, __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, 347, __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, 348, __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, 348, __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, 348, __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, 348, __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, 348, __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, 348, __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, 348, __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, 348, __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, 349, __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, 350, __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, 350, __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, 350, __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, 351, __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, 351, __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, 351, __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, 351, __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, 352, __pyx_L1_error) + __pyx_t_13 = __Pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_13 == (double)-1) && PyErr_Occurred())) __PYX_ERR(2, 352, __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, 352, __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, 353, __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, 353, __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, 353, __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, 353, __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, 354, __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, 354, __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, 354, __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, 357, __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, 359, __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, 359, __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, 360, __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, 362, __pyx_L3_error) + if (__pyx_kwds_len > 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, 362, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 362, __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, 362, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 362, __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, 362, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 367, __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, 367, __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, 367, __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, 369, __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, 372, __pyx_L3_error) + if (__pyx_kwds_len > 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, 372, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 372, __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, 372, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 372, __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, 372, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 379, __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, 380, __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, 380, __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, 381, __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, 382, __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, 382, __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, 384, __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, 385, __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, 386, __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, 386, __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, 386, __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, 387, __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, 387, __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, 388, __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, 389, __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, 389, __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, 389, __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, 389, __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, 389, __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, 391, __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, 391, __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, 391, __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, 391, __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, 393, __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, 391, __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, 391, __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, 391, __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, 394, __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, 395, __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, 395, __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, 395, __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, 396, __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, 397, __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, 397, __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, 397, __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, 399, __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, 399, __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, 399, __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, 399, __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, 400, __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, 399, __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, 399, __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, 399, __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, 402, __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, 402, __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, 404, __pyx_L3_error) + if (__pyx_kwds_len > 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, 404, __pyx_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, 404, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 404, __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, 404, __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, 404, __pyx_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, 404, __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, 404, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 411, __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, 412, __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, 413, __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, 414, __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, 416, __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, 416, __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, 416, __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, 416, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs < 1)) { + 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, 416, __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, 416, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (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, 423, __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, 425, __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, 426, __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, 426, __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, 426, __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, 426, __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, 426, __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, 426, __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, 426, __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, 426, __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, 425, __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, 425, __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, 425, __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, 425, __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, 425, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2) != (0)) __PYX_ERR(2, 425, __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, 425, __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, 427, __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, 428, __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, 428, __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, 428, __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, 428, __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, 428, __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, 428, __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, 428, __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, 427, __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, 427, __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, 427, __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, 427, __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, 427, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4) != (0)) __PYX_ERR(2, 427, __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, 427, __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, 431, __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, 432, __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, 433, __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, 434, __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, 434, __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, 434, __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, 434, __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, 435, __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, 435, __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, 435, __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, 435, __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, 435, __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, 435, __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, 435, __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, 436, __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, 436, __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, 440, __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, 440, __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, 441, __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, 443, __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, 443, __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, 444, __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, 442, __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, 445, __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, 445, __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, 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_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, 448, __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, 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_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, 449, __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, 449, __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, 450, __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, 451, __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, 451, __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, 451, __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, 452, __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, 452, __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, 454, __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, 454, __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, 454, __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, 456, __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, 456, __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, 457, __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, 458, __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, 458, __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, 459, __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, 459, __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, 460, __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, 460, __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, 460, __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, 460, __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, 462, __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, 462, __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, 463, __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, 461, __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, 464, __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, 464, __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, 467, __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, 467, __pyx_L37_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 467, __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, 467, __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, 468, __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, 471, __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, 471, __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, 471, __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, 471, __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, 471, __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, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 471, __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, 471, __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, 471, __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, 471, __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, 472, __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, 472, __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, 472, __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, 473, __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, 473, __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, 473, __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, 476, __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, 476, __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, 476, __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, 476, __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, 476, __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, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 476, __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, 476, __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, 476, __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, 476, __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, 477, __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, 477, __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, 477, __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, 478, __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, 478, __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, 478, __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, 471, __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, 471, __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, 471, __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, 471, __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, 471, __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, 471, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(2, 471, __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, 471, __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, 471, __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, 471, __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, 472, __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, 472, __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, 472, __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, 473, __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, 473, __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, 473, __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, 476, __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, 476, __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, 476, __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, 476, __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, 476, __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, 476, __pyx_L50_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 476, __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, 476, __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, 476, __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, 476, __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, 477, __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, 477, __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, 477, __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, 478, __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, 478, __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, 478, __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, 480, __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, 483, __pyx_L3_error) + if (__pyx_kwds_len > 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, 483, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 483, __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, 483, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 483, __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, 483, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 484, __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, 485, __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, 486, __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, 486, __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, 486, __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, 486, __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, 486, __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, 486, __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, 486, __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, 487, __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, 487, __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, 487, __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, 489, __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, 489, __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, 489, __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, 489, __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, 489, __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, 489, __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, 490, __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, 492, __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, 495, __pyx_L3_error) + if (__pyx_kwds_len > 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, 495, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 495, __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, 495, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 495, __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, 495, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 496, __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, 497, __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, 500, __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, 501, __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, 501, __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, 501, __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, 501, __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, 501, __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, 501, __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, 502, __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, 502, __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, 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_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, 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_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, 505, __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, 505, __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, 506, __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, 507, __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, 507, __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, 508, __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, 508, __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, 509, __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, 510, __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, 510, __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, 510, __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, 510, __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, 510, __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, 510, __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, 510, __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, 511, __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, 512, __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, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 515, __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, 515, __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, 517, __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, 517, __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, 519, __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, 520, __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, 520, __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, 520, __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, 522, __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, 522, __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, 522, __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, 522, __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, 522, __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, 522, __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, 522, __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, 522, __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, 523, __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, 523, __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, 523, __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, 524, __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__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__opt_input_value, "Function.__opt_input_value(self, input_name, value)\n\nReturns value (None included) as given if it is of its parameter\047s\ntype, converted if it is another number of that kind; otherwise raises\nTypeError."); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_8Function_39__opt_input_value = {"__opt_input_value", (PyCFunction)(void(*)(void))(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_8Function_39__opt_input_value, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_8Function_38__opt_input_value}; +static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__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("__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, 526, __pyx_L3_error) + if (__pyx_kwds_len > 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, 526, __pyx_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, 526, __pyx_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, 526, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (__Pyx_ParseKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values, kwd_pos_args, __pyx_kwds_len, "__opt_input_value", 0) < (0)) __PYX_ERR(2, 526, __pyx_L3_error) + for (Py_ssize_t i = __pyx_nargs; i < 3; i++) { + if (unlikely(!values[i])) { __Pyx_RaiseArgtupleInvalid("__opt_input_value", 1, 3, 3, i); __PYX_ERR(2, 526, __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, 526, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 526, __pyx_L3_error) + values[2] = __Pyx_ArgRef_FASTCALL(__pyx_args, 2); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[2])) __PYX_ERR(2, 526, __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("__opt_input_value", 1, 3, 3, __pyx_nargs); __PYX_ERR(2, 526, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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.__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__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__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_v_kind = NULL; + PyObject *__pyx_v_convert = 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; + size_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10[7]; + Py_ssize_t __pyx_t_11; + int __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__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, 532, __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, 532, __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, 532, __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, 532, __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, 533, __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, 533, __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, 533, __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, 533, __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_t_2 = ((PyObject *)(&PyLong_Type)); + __Pyx_INCREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_numbers); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_Integral); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_operator); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_mstate_global->__pyx_n_u_index); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_type_, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_v_kind = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_convert = __pyx_t_6; + __pyx_t_6 = 0; + + goto __pyx_L3; + } + + __Pyx_INCREF(__pyx_v_type_); + __pyx_t_6 = __pyx_v_type_; + __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_6, __pyx_t_5, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!__pyx_t_3) { + + } else { + + __pyx_t_4 = __pyx_t_3; + + goto __pyx_L6_bool_binop_done; + } + __pyx_t_5 = __Pyx_PyLong_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_PyObject_CompareBoolEq_object_int(__pyx_t_6, __pyx_t_5, Py_EQ); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(2, 535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + __pyx_t_4 = __pyx_t_3; + + __pyx_L6_bool_binop_done:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_3 = __pyx_t_4; + + + if (__pyx_t_3) { + + + __pyx_t_6 = ((PyObject *)(&PyFloat_Type)); + __Pyx_INCREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_numbers); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_mstate_global->__pyx_n_u_Real); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = ((PyObject *)(&PyFloat_Type)); + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_type_, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_v_kind = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_convert = __pyx_t_5; + __pyx_t_5 = 0; + + } + __pyx_L3:; + + __pyx_t_4 = (__pyx_v_value == Py_None); + if (!__pyx_t_4) { + + } else { + + __pyx_t_3 = __pyx_t_4; + + goto __pyx_L9_bool_binop_done; + } + __pyx_t_4 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 538, __pyx_L1_error) + + __pyx_t_3 = __pyx_t_4; + + __pyx_L9_bool_binop_done:; + if (__pyx_t_3) { + + + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __Pyx_INCREF(__pyx_v_value); + __pyx_r = __pyx_v_value; + } + __Pyx_XDECREF(__pyx_temp); + } + goto __pyx_L0; + + } + + if (unlikely(!__pyx_v_kind)) { __Pyx_RaiseUnboundLocalError("kind"); __PYX_ERR(2, 540, __pyx_L1_error) } + __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_kind); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(2, 540, __pyx_L1_error) + if (__pyx_t_3) { + + + __pyx_t_2 = NULL; + if (unlikely(!__pyx_v_convert)) { __Pyx_RaiseUnboundLocalError("convert"); __PYX_ERR(2, 541, __pyx_L1_error) } + __Pyx_INCREF(__pyx_v_convert); + __pyx_t_6 = __pyx_v_convert; + __pyx_t_7 = 1; + #if CYTHON_UNPACK_METHODS + if (unlikely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6); + assert(__pyx_t_2); + PyObject* __pyx__function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx__function); + __Pyx_DECREF_SET(__pyx_t_6, __pyx__function); + __pyx_t_7 = 0; + } + #endif + { + PyObject *__pyx_callargs[2] = {__pyx_t_2, __pyx_v_value}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)__pyx_t_6, __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_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + { + PyObject *__pyx_temp; + { + __pyx_temp = __pyx_r; + __pyx_r = __pyx_t_5; + } + __Pyx_XDECREF(__pyx_temp); + } + __pyx_t_5 = 0; + goto __pyx_L0; + + } + + __pyx_t_6 = NULL; + + __pyx_t_2 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_v_input_name), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_mstate_global->__pyx_n_u_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = __Pyx_PyObject_FormatSimpleAndDecref(PyObject_Str(__pyx_t_1), __pyx_mstate_global->__pyx_empty_unicode); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10[0] = __pyx_mstate_global->__pyx_kp_u_Invalid_parameter_value_for; + __pyx_t_10[1] = __pyx_t_2; + __pyx_t_10[2] = __pyx_mstate_global->__pyx_kp_u_expected; + __pyx_t_10[3] = __pyx_t_8; + __pyx_t_10[4] = __pyx_mstate_global->__pyx_kp_u_got; + __pyx_t_10[5] = __pyx_t_9; + __pyx_t_10[6] = __pyx_mstate_global->__pyx_kp_u__6; + + __pyx_t_11 = 46; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_11 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[1]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[3]) + __Pyx_PyUnicode_GET_LENGTH(__pyx_t_10[5]); + #endif + __pyx_t_12 = 0; + #if __Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH + __pyx_t_12 |= __Pyx_PyUnicode_KIND_04(__pyx_t_10[1]) | __Pyx_PyUnicode_KIND_04(__pyx_t_10[3]) | __Pyx_PyUnicode_KIND_04(__pyx_t_10[5]); + #endif + __pyx_t_1 = __Pyx_PyUnicode_Join(__pyx_t_10, 7, __pyx_t_11, __pyx_t_12); + 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_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = 1; + { + PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_t_1}; + __pyx_t_5 = __Pyx_PyObject_FastCall((PyObject*)(((PyTypeObject*)PyExc_TypeError)), __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; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(2, 542, __pyx_L1_error) + + + /* 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_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("talib._ta_lib.Function.__opt_input_value", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_type_); + __Pyx_XDECREF(__pyx_v_kind); + __Pyx_XDECREF(__pyx_v_convert); + __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, 546, __pyx_L3_error) + if (__pyx_kwds_len > 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, 546, __pyx_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, 546, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 546, __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, 546, __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, 546, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 546, __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, 546, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 550, __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, 551, __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, 551, __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, 551, __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, 553, __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, 553, __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, 553, __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, 556, __pyx_L3_error) + if (__pyx_kwds_len > 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, 556, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 556, __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, 556, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 556, __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, 556, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 557, __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, 557, __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, 559, __pyx_L3_error) + if (__pyx_kwds_len > 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, 559, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 559, __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, 559, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 559, __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, 559, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 560, __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, 560, __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, 562, __pyx_L3_error) + if (__pyx_kwds_len > 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, 562, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 562, __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, 562, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 562, __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, 562, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 563, __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, 563, __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, 563, __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, 563, __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, 582, __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, 582, __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, 582, __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, 582, __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, 585, __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, 587, __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, 589, __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, 589, __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, 593, __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, 593, __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, 582, __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, 582, __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, 582, __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, 582, __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, 582, __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, 582, __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, 594, __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, 596, __pyx_L3_error) + if (__pyx_kwds_len > 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, 596, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 596, __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, 596, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 596, __pyx_L3_error) + } + __pyx_v_group = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_group) && PyErr_Occurred())) __PYX_ERR(2, 596, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncTable", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 596, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 602, __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, 602, __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, 602, __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, 602, __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, 605, __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, 607, __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, 609, __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, 609, __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, 613, __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, 613, __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, 602, __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, 602, __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, 602, __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, 602, __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, 602, __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, 602, __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, 614, __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, 616, __pyx_L3_error) + if (__pyx_kwds_len > 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, 616, __pyx_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, 616, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 616, __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, 616, __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, 616, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 616, __pyx_L3_error) + } + __pyx_v_flag = __Pyx_PyLong_As_int(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 616, __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, 616, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 616, __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, 626, __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, 627, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyDict_Items(__pyx_v_flags_lookup_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_List(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 627, __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, 627, __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, 627, __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, 627, __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, 627, __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, 627, __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, 627, __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, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 627, __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, 627, __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, 627, __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, 627, __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, 628, __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, 628, __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, 628, __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, 626, __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, 674, __pyx_L3_error) + if (__pyx_kwds_len > 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, 674, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 674, __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, 674, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 674, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 674, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getFuncInfo", 1, 1, 1, __pyx_nargs); __PYX_ERR(2, 674, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 680, __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, 682, __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, 682, __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, 682, __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, 682, __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, 682, __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, 685, __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, 688, __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, 688, __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, 688, __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, 688, __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, 688, __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, 689, __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, 689, __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, 689, __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, 688, __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, 690, __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, 690, __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, 690, __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, 688, __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, 691, __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, 691, __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, 691, __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, 691, __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, 688, __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, 692, __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, 692, __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, 688, __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, 693, __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, 693, __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, 688, __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, 694, __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, 694, __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, 688, __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, 697, __pyx_L3_error) + if (__pyx_kwds_len > 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, 697, __pyx_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, 697, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 697, __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, 697, __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, 697, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 697, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 697, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 697, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 697, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 703, __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, 705, __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, 705, __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, 705, __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, 705, __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, 705, __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, 708, __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, 710, __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, 710, __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, 710, __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, 711, __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, 711, __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, 711, __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, 712, __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, 713, __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, 713, __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, 714, __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, 718, __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, 718, __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, 719, __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, 719, __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, 719, __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, 719, __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, 718, __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, 722, __pyx_L3_error) + if (__pyx_kwds_len > 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, 722, __pyx_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, 722, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 722, __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, 722, __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, 722, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 722, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 722, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 722, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOptInputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 722, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 728, __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, 730, __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, 730, __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, 730, __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, 730, __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, 730, __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, 733, __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, 735, __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, 735, __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, 735, __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, 736, __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, 736, __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, 736, __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, 737, __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, 737, __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, 740, __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, 740, __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, 741, __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, 741, __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, 741, __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, 740, __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, 742, __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, 740, __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, 743, __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, 743, __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, 743, __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, 740, __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, 740, __pyx_L1_error) + + if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_n_u_value, Py_None) < (0)) __PYX_ERR(2, 740, __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, 748, __pyx_L3_error) + if (__pyx_kwds_len > 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, 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(2, 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, "_ta_getOutputParameterInfo", 0) < (0)) __PYX_ERR(2, 748, __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, 748, __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, 748, __pyx_L3_error) + values[1] = __Pyx_ArgRef_FASTCALL(__pyx_args, 1); + if (!CYTHON_ASSUME_SAFE_MACROS && unlikely(!values[1])) __PYX_ERR(2, 748, __pyx_L3_error) + } + __pyx_v_function_name = __Pyx_PyObject_AsWritableString(values[0]); if (unlikely((!__pyx_v_function_name) && PyErr_Occurred())) __PYX_ERR(2, 748, __pyx_L3_error) + __pyx_v_idx = __Pyx_PyLong_As_int(values[1]); if (unlikely((__pyx_v_idx == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 748, __pyx_L3_error) + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_ta_getOutputParameterInfo", 1, 2, 2, __pyx_nargs); __PYX_ERR(2, 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._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, 754, __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, 756, __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, 756, __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, 756, __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, 756, __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, 756, __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, 759, __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, 761, __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, 761, __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, 761, __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, 762, __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, 762, __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, 762, __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, 764, __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, 764, __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, 764, __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, 764, __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, 765, __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, 765, __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, 768, __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, 768, __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, 769, __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, 769, __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, 769, __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, 769, __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, 768, __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, 772, __pyx_L3_error) + if (__pyx_kwds_len > 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, 772, __pyx_L3_error) + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + const Py_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, 772, __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, 772, __pyx_L3_error) } + } + } else if (unlikely(__pyx_nargs != 1)) { + 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, 772, __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, 772, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + for (Py_ssize_t __pyx_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, 778, __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, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 779, __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, 779, __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, 779, __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, 780, __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, 780, __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, 781, __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, 782, __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, 782, __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, 784, __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, 785, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 786, __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, 787, __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, 790, __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, 790, __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, 790, __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, 790, __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, 792, __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, 793, __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, 794, __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, 795, __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, 795, __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, 795, __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, 795, __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, 795, __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, 795, __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, 796, __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, 796, __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, 796, __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, 796, __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, 796, __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, 797, __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, 797, __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, 797, __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, 797, __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, 797, __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, 798, __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, 798, __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, 799, __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, 799, __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, 800, __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, 800, __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, 800, __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, 800, __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, 800, __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, 800, __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, 800, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_8); + if (__Pyx_PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_8) != (0)) __PYX_ERR(2, 800, __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, 800, __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, 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 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_mstate_global->__pyx_n_u_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 802, __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, 803, __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, 803, __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, 803, __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, 803, __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, 803, __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, 804, __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, 805, __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, 805, __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, 805, __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, 805, __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, 805, __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, 805, __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, 806, __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, 806, __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, 808, __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, 808, __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, 810, __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, 810, __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, 811, __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, 812, __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, 812, __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, 813, __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, 814, __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, 814, __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, 814, __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, 831, __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, 831, __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, 831, __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, 831, __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, 831, __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, 834, __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, 842, __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, 844, __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, 844, __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, 844, __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, 844, __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, 844, __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, 847, __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, 858, __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, 864, __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, 870, __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, 875, __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, 875, __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, 875, __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, 875, __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, 875, __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, 878, __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_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, 791, __pyx_L1_error) - 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, 7840, __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, 7841, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; - __pyx_t_7 = __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, 7842, __pyx_L1_error) + __pyx_v_historylen = __pyx_t_3; - goto __pyx_L17_bool_binop_done; - } - __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_candlestick); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(2, 791, __pyx_L1_error) + __pyx_v_handle = NULL; - __pyx_t_7 = __pyx_t_6; + __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_L17_bool_binop_done:; - if (__pyx_t_7) { + __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_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_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + } + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L8; + } + __pyx_L8:; + } } - __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, 793, __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, 793, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 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, 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_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __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_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__4, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 795, __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, 795, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = (__pyx_v_retCode == 0); + if (__pyx_t_4) { - __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, 796, __pyx_L1_error) + __pyx_v_stream->__pyx_base._handle = ((void *)__pyx_v_handle); - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__3, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 797, __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, 797, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_stream->__pyx_base._begidx = __pyx_v_begidx; + __pyx_f_5talib_7_ta_lib__ta_stream_registered(); - __pyx_t_2 = PyUnicode_Join(__pyx_mstate_global->__pyx_kp_u__14, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 798, __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, 799, __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, 799, __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, 799, __pyx_L1_error); - { - PyObject *__pyx_temp; - { - __pyx_temp = __pyx_r; - __pyx_r = __pyx_t_2; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L11; + } + __pyx_L11:; + } } - __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; -} + /*finally:*/ { + /*normal exit:*/{ + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { -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); + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - /*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, 816, __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, 816, __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, 816, __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, 816, __pyx_L3_error) - __Pyx_GOTREF(__pyx_t_2); + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L15; + } + __pyx_L15:; + } + } + goto __pyx_L5; } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF((PyObject *)__pyx_t_1); __pyx_t_1 = 0; - /*try:*/ { + __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; { - (void)__pyx_t_7; (void)__pyx_t_8; (void)__pyx_t_9; /* mark used */ - /*try:*/ { - - { - PyThreadState * _save; - _save = PyEval_SaveThread(); - __Pyx_FastGIL_Remember(); - /*try:*/ { + { + PyThreadState * _save; + _save = PyEval_SaveThread(); + __Pyx_FastGIL_Remember(); + /*try:*/ { - __pyx_v_retCode = TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)); - } + __pyx_f_5talib_7_ta_lib__ta_end_read(); + } - /*finally:*/ { - /*normal exit:*/{ - __Pyx_FastGIL_Forget(); - PyEval_RestoreThread(_save); - goto __pyx_L15; - } - __pyx_L15:; + /*finally:*/ { + /*normal exit:*/{ + __Pyx_FastGIL_Forget(); + PyEval_RestoreThread(_save); + goto __pyx_L20; } - } - - } - } - } - /*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, 816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_L20:; + } } - 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_3; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; } - goto __pyx_L16; - __pyx_L3_error:; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - goto __pyx_L1_error; - __pyx_L16:; + __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_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_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, 819, __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; { - - __pyx_r = __pyx_v_handle; + 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_5); - __Pyx_XDECREF(__pyx_t_6); - __Pyx_AddTraceback("talib._ta_lib.__ta_getFuncHandle", __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((PyObject *)__pyx_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_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; +/* 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_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, 827, __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, 829, __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, 829, __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, 829, __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, 829, __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:; - } - } - - } + 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_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, 829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 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_5); __pyx_t_5 = 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_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, 832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - { - - __pyx_r = __pyx_v_holder; + 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_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:; + for (Py_ssize_t __pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + Py_XDECREF(values[__pyx_temp]); + } @@ -110741,16 +179691,18 @@ static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx return __pyx_r; } - -static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { +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; - 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_paramHolderFree", 0); + __Pyx_RefNannySetupContext("update", 0); { PyThreadState * _save; @@ -110758,7 +179710,22 @@ static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_ __Pyx_FastGIL_Remember(); /*try:*/ { - __pyx_v_retCode = TA_ParamHolderFree(__pyx_v_params); + { + __pyx_t_1 = &__pyx_v_self->__pyx_base._mutex; + __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)); + } + + /*finally:*/ { + /*normal exit:*/{ + __Pyx_Locks_PyMutex_Unlock(*__pyx_t_1); + goto __pyx_L8; + } + __pyx_L8:; + } + } } /*finally:*/ { @@ -110771,84 +179738,170 @@ static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_ } } - __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, 843, __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_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_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_1); - __Pyx_AddTraceback("talib._ta_lib.__ta_paramHolderFree", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __Pyx_XDECREF(__pyx_t_3); + __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_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; +/* 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_setOptInputParamInteger", 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_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + PyObject ** const __pyx_pyargnames[] = {&__pyx_mstate_global->__pyx_n_u_open,&__pyx_mstate_global->__pyx_n_u_high,&__pyx_mstate_global->__pyx_n_u_low,&__pyx_mstate_global->__pyx_n_u_close,0}; + 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_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 849, __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_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) { +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_setOptInputParamReal", 0); + __Pyx_RefNannySetupContext("peek", 0); { PyThreadState * _save; @@ -110856,7 +179909,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_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:*/ { @@ -110869,323 +179937,252 @@ 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, 855, __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_setOptInputParamReal", __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_getLookback(TA_ParamHolder *__pyx_v_holder) { - int __pyx_v_lookback; +/* 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; - 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; + __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_getLookback", 0); + __Pyx_RefNannySetupContext("__get__", 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, 860, __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, 860, __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, 860, __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, 860, __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:*/ { - { - 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_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); - } + __pyx_v_retCode = TA_CDLBELTHOLD_Value(((TA_CDLBELTHOLD_Stream *)__pyx_v_self->__pyx_base._handle), (&__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_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, 860, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_9); - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 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_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, 863, __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) { - __pyx_r = __pyx_v_lookback; + + __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; + + } + + __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); + { + 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; @@ -111193,746 +180190,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; @@ -111940,126 +181044,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; @@ -112068,15 +181176,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:*/ { @@ -112099,78 +181203,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; @@ -112178,28 +181243,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); @@ -112208,29 +181281,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; @@ -112239,11 +181375,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:*/ { @@ -112271,29 +181407,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; @@ -112301,237 +181442,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 @@ -112544,7 +181596,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); @@ -112553,59 +181605,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; @@ -112613,19 +181738,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; { @@ -112639,7 +181764,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; @@ -112665,30 +181790,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; @@ -112704,115 +181828,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; @@ -112827,39 +181922,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:*/ { @@ -112869,9 +181980,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); @@ -112888,7 +181999,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; } @@ -112956,7 +182067,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; @@ -112968,11 +182079,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); @@ -112988,32 +182101,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; @@ -113029,119 +182141,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 @@ -113163,44 +182246,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:*/ { @@ -113210,7 +182309,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:*/ { @@ -113223,9 +182322,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; { @@ -113234,7 +182333,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); @@ -113338,30 +182437,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; @@ -113379,17 +182484,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); @@ -113402,28 +182509,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; @@ -113439,52 +182548,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) { @@ -113492,12 +182615,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 @@ -113520,7 +182645,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:*/ { @@ -113548,13 +182673,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; @@ -113571,7 +182696,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:; @@ -113583,28 +182708,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; @@ -113620,52 +182747,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) { @@ -113673,12 +182814,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 @@ -113701,7 +182844,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:*/ { @@ -113729,13 +182872,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; @@ -113752,7 +182895,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:; @@ -113764,22 +182907,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 @@ -113802,7 +182945,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:*/ { @@ -113830,13 +182973,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; @@ -113853,7 +182996,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:; @@ -113864,12 +183007,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; @@ -113880,12 +183023,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; @@ -113897,15 +183040,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 @@ -113931,16 +183074,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -113957,18 +183100,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; { @@ -113982,7 +183125,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); @@ -114025,7 +183168,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; @@ -114047,7 +183190,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:; @@ -114060,19 +183203,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; { @@ -114086,7 +183229,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; @@ -114112,24 +183255,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 @@ -114150,86 +183293,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; @@ -114237,10 +183371,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; @@ -114255,47 +183387,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:*/ { @@ -114305,9 +183445,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); @@ -114324,7 +183464,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; } @@ -114392,7 +183532,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; @@ -114404,9 +183544,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); @@ -114419,34 +183560,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 @@ -114467,86 +183606,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; @@ -114555,13 +183685,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 @@ -114578,59 +183706,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:*/ { @@ -114640,7 +183774,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:*/ { @@ -114653,19 +183787,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; { @@ -114674,7 +183798,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); @@ -114778,82 +183902,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; @@ -114861,11 +183949,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); @@ -114874,9 +183961,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); @@ -114889,21 +183974,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; @@ -114911,7 +183997,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; @@ -114927,59 +184013,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) { @@ -114988,23 +184081,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; @@ -115021,7 +184110,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:*/ { @@ -115049,54 +184138,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; @@ -115104,21 +184173,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; @@ -115126,7 +184196,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; @@ -115142,59 +184212,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) { @@ -115203,23 +184280,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; @@ -115236,7 +184309,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:*/ { @@ -115264,54 +184337,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; @@ -115319,33 +184372,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; @@ -115362,7 +184410,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:*/ { @@ -115390,66 +184438,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; @@ -115460,12 +184488,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; @@ -115477,15 +184505,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 @@ -115511,16 +184539,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -115537,18 +184565,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; { @@ -115562,7 +184590,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); @@ -115605,7 +184633,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; @@ -115627,7 +184655,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:; @@ -115640,19 +184668,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; { @@ -115666,7 +184694,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; @@ -115692,26 +184720,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; @@ -115727,45 +184758,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) { @@ -115775,14 +184827,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; @@ -115797,31 +184852,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:*/ { @@ -115831,9 +184910,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); @@ -115850,7 +184929,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; } @@ -115918,7 +184997,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; @@ -115930,10 +185009,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); @@ -115949,28 +185031,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; @@ -115986,45 +185071,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) { @@ -116034,18 +185140,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 @@ -116067,36 +185176,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:*/ { @@ -116106,7 +185239,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:*/ { @@ -116119,9 +185252,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; { @@ -116130,7 +185263,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); @@ -116234,27 +185367,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; @@ -116272,16 +185414,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); @@ -116294,27 +185439,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; @@ -116330,57 +185478,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 @@ -116403,7 +185575,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:*/ { @@ -116431,13 +185603,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; @@ -116454,7 +185626,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:; @@ -116466,27 +185638,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; @@ -116502,57 +185677,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 @@ -116575,7 +185774,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:*/ { @@ -116603,13 +185802,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; @@ -116626,7 +185825,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:; @@ -116638,22 +185837,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 @@ -116676,7 +185875,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:*/ { @@ -116704,13 +185903,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; @@ -116727,7 +185926,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:; @@ -116738,12 +185937,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; @@ -116754,12 +185953,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; @@ -116771,15 +185970,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 @@ -116805,16 +186004,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -116831,18 +186030,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; { @@ -116856,7 +186055,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); @@ -116899,7 +186098,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; @@ -116921,7 +186120,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:; @@ -116934,19 +186133,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; { @@ -116960,7 +186159,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; @@ -116986,29 +186185,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; @@ -117024,86 +186224,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; @@ -117118,55 +186335,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:*/ { @@ -117176,9 +186393,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); @@ -117195,7 +186412,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; } @@ -117263,7 +186480,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; @@ -117275,13 +186492,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); @@ -117297,31 +186514,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; @@ -117337,90 +186555,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 @@ -117442,60 +186677,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:*/ { @@ -117505,7 +186740,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:*/ { @@ -117518,9 +186753,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; { @@ -117529,7 +186764,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); @@ -117633,36 +186868,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; @@ -117680,19 +186915,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); @@ -117705,25 +186940,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 @@ -117744,66 +186979,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) { @@ -117817,8 +187052,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 @@ -117841,7 +187076,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:*/ { @@ -117869,13 +187104,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; @@ -117892,7 +187127,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:; @@ -117904,25 +187139,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 @@ -117943,66 +187178,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) { @@ -118016,8 +187251,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 @@ -118040,7 +187275,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:*/ { @@ -118068,13 +187303,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; @@ -118091,7 +187326,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:; @@ -118103,22 +187338,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 @@ -118141,7 +187376,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:*/ { @@ -118169,13 +187404,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; @@ -118192,7 +187427,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:; @@ -118203,12 +187438,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; @@ -118219,12 +187454,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; @@ -118236,15 +187471,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 @@ -118270,16 +187505,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -118296,18 +187531,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; { @@ -118321,7 +187556,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); @@ -118364,7 +187599,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; @@ -118386,7 +187621,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:; @@ -118399,19 +187634,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; { @@ -118425,7 +187660,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; @@ -118451,27 +187686,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; @@ -118487,52 +187724,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) { @@ -118542,15 +187793,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; @@ -118565,39 +187818,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:*/ { @@ -118607,9 +187876,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); @@ -118626,7 +187895,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; } @@ -118694,7 +187963,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; @@ -118706,11 +187975,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); @@ -118726,29 +187997,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; @@ -118764,52 +188037,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) { @@ -118819,19 +188106,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 @@ -118853,44 +188142,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:*/ { @@ -118900,7 +188205,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:*/ { @@ -118913,9 +188218,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; { @@ -118924,7 +188229,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); @@ -119028,30 +188333,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; @@ -119069,17 +188380,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); @@ -119092,28 +188405,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; @@ -119129,52 +188444,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) { @@ -119182,12 +188511,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 @@ -119210,7 +188541,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:*/ { @@ -119238,13 +188569,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; @@ -119261,7 +188592,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:; @@ -119273,28 +188604,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; @@ -119310,52 +188643,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) { @@ -119363,12 +188710,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 @@ -119391,7 +188740,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:*/ { @@ -119419,13 +188768,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; @@ -119442,7 +188791,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:; @@ -119454,22 +188803,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 @@ -119492,7 +188841,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:*/ { @@ -119520,13 +188869,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; @@ -119543,7 +188892,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:; @@ -119554,12 +188903,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; @@ -119570,12 +188919,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; @@ -119587,15 +188936,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 @@ -119621,16 +188970,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -119647,18 +188996,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; { @@ -119672,7 +189021,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); @@ -119715,7 +189064,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; @@ -119737,7 +189086,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:; @@ -119750,19 +189099,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; { @@ -119776,7 +189125,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; @@ -119802,31 +189151,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; @@ -119842,117 +189189,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; @@ -119967,55 +189283,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:*/ { @@ -120025,9 +189341,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); @@ -120044,7 +189360,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; } @@ -120112,7 +189428,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; @@ -120124,13 +189440,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); @@ -120146,33 +189462,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; @@ -120188,121 +189502,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 @@ -120324,60 +189607,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:*/ { @@ -120387,7 +189670,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:*/ { @@ -120400,9 +189683,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; { @@ -120411,7 +189694,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); @@ -120515,36 +189798,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; @@ -120562,19 +189845,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); @@ -120587,25 +189870,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 @@ -120626,66 +189909,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) { @@ -120699,8 +189982,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 @@ -120723,7 +190006,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:*/ { @@ -120751,13 +190034,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; @@ -120774,7 +190057,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:; @@ -120786,25 +190069,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 @@ -120825,66 +190108,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) { @@ -120898,8 +190181,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 @@ -120922,7 +190205,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:*/ { @@ -120950,13 +190233,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; @@ -120973,7 +190256,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:; @@ -120985,22 +190268,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 @@ -121023,7 +190306,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:*/ { @@ -121051,13 +190334,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; @@ -121074,7 +190357,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:; @@ -121085,12 +190368,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; @@ -121101,12 +190384,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; @@ -121118,15 +190401,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 @@ -121152,16 +190435,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -121178,18 +190461,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; { @@ -121203,7 +190486,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); @@ -121246,7 +190529,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; @@ -121268,7 +190551,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:; @@ -121281,19 +190564,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; { @@ -121307,7 +190590,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; @@ -121333,28 +190616,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; @@ -121370,87 +190654,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; @@ -121465,39 +190748,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:*/ { @@ -121507,9 +190806,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); @@ -121526,7 +190825,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; } @@ -121594,7 +190893,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; @@ -121606,11 +190905,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); @@ -121626,30 +190927,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; @@ -121665,91 +190967,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 @@ -121771,44 +191072,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:*/ { @@ -121818,7 +191135,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:*/ { @@ -121831,9 +191148,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; { @@ -121842,7 +191159,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); @@ -121946,30 +191263,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; @@ -121987,17 +191310,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); @@ -122010,28 +191335,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; @@ -122047,52 +191374,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) { @@ -122100,12 +191441,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 @@ -122128,7 +191471,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:*/ { @@ -122156,13 +191499,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; @@ -122179,7 +191522,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:; @@ -122191,28 +191534,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; @@ -122228,52 +191573,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) { @@ -122281,12 +191640,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 @@ -122309,7 +191670,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:*/ { @@ -122337,13 +191698,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; @@ -122360,7 +191721,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:; @@ -122372,22 +191733,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 @@ -122410,7 +191771,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:*/ { @@ -122438,13 +191799,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; @@ -122461,7 +191822,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:; @@ -122472,12 +191833,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; @@ -122488,12 +191849,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; @@ -122505,15 +191866,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 @@ -122539,16 +191900,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -122565,18 +191926,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; { @@ -122590,7 +191951,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); @@ -122633,7 +191994,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; @@ -122655,7 +192016,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:; @@ -122668,19 +192029,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; { @@ -122694,7 +192055,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; @@ -122720,24 +192081,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 @@ -122758,86 +192119,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; @@ -122845,8 +192197,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; @@ -122861,47 +192213,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:*/ { @@ -122911,9 +192271,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); @@ -122930,7 +192290,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; } @@ -122998,7 +192358,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; @@ -123010,9 +192370,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); @@ -123031,26 +192392,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 @@ -123071,86 +192432,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; @@ -123159,11 +192511,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 @@ -123185,52 +192537,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:*/ { @@ -123240,7 +192600,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:*/ { @@ -123253,9 +192613,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; { @@ -123264,7 +192624,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); @@ -123368,33 +192728,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; @@ -123412,9 +192775,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); @@ -123423,7 +192787,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); @@ -123436,21 +192800,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; @@ -123458,7 +192823,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; @@ -123474,59 +192839,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) { @@ -123535,12 +192907,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 @@ -123563,7 +192936,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:*/ { @@ -123591,13 +192964,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; @@ -123614,7 +192987,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:; @@ -123626,21 +192999,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; @@ -123648,7 +193022,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; @@ -123664,59 +193038,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) { @@ -123725,12 +193106,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 @@ -123753,7 +193135,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:*/ { @@ -123781,13 +193163,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; @@ -123804,7 +193186,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:; @@ -123816,22 +193198,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 @@ -123854,7 +193236,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:*/ { @@ -123882,13 +193264,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; @@ -123905,7 +193287,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:; @@ -123916,12 +193298,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; @@ -123932,12 +193314,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; @@ -123949,15 +193331,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 @@ -123983,16 +193365,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -124009,18 +193391,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; { @@ -124034,7 +193416,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); @@ -124077,7 +193459,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; @@ -124099,7 +193481,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:; @@ -124112,19 +193494,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; { @@ -124138,7 +193520,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; @@ -124164,29 +193546,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; @@ -124202,75 +193585,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) { @@ -124281,7 +193671,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; @@ -124289,8 +193680,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; @@ -124305,47 +193696,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:*/ { @@ -124355,9 +193754,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); @@ -124374,7 +193773,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; } @@ -124442,7 +193841,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; @@ -124454,9 +193853,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); @@ -124475,31 +193875,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; @@ -124515,75 +193916,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) { @@ -124594,7 +194002,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; @@ -124603,11 +194012,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 @@ -124629,52 +194038,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:*/ { @@ -124684,7 +194101,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:*/ { @@ -124697,9 +194114,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; { @@ -124708,7 +194125,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); @@ -124812,33 +194229,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; @@ -124856,9 +194276,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); @@ -124867,7 +194288,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); @@ -124880,21 +194301,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; @@ -124902,7 +194324,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; @@ -124918,59 +194340,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) { @@ -124979,12 +194408,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 @@ -125007,7 +194437,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:*/ { @@ -125035,13 +194465,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; @@ -125058,7 +194488,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:; @@ -125070,21 +194500,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; @@ -125092,7 +194523,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; @@ -125108,59 +194539,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) { @@ -125169,12 +194607,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 @@ -125197,7 +194636,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:*/ { @@ -125225,13 +194664,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; @@ -125248,7 +194687,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:; @@ -125260,22 +194699,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 @@ -125298,7 +194737,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:*/ { @@ -125326,13 +194765,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; @@ -125349,7 +194788,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:; @@ -125360,12 +194799,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; @@ -125376,12 +194815,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; @@ -125393,15 +194832,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 @@ -125427,16 +194866,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -125453,18 +194892,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; { @@ -125478,7 +194917,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); @@ -125521,7 +194960,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; @@ -125543,7 +194982,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:; @@ -125556,19 +194995,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; { @@ -125582,7 +195021,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; @@ -125608,29 +195047,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; @@ -125646,101 +195086,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; @@ -125755,39 +195197,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:*/ { @@ -125797,9 +195255,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); @@ -125816,7 +195274,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; } @@ -125884,7 +195342,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; @@ -125896,11 +195354,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); @@ -125916,31 +195376,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; @@ -125956,105 +195417,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 @@ -126076,44 +195539,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:*/ { @@ -126123,7 +195602,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:*/ { @@ -126136,9 +195615,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; { @@ -126147,7 +195626,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); @@ -126251,30 +195730,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; @@ -126292,17 +195777,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); @@ -126315,28 +195802,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; @@ -126352,52 +195841,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) { @@ -126405,12 +195908,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 @@ -126433,7 +195938,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:*/ { @@ -126461,13 +195966,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; @@ -126484,7 +195989,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:; @@ -126496,28 +196001,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; @@ -126533,52 +196040,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) { @@ -126586,12 +196107,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 @@ -126614,7 +196137,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:*/ { @@ -126642,13 +196165,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; @@ -126665,7 +196188,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:; @@ -126677,22 +196200,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 @@ -126715,7 +196238,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:*/ { @@ -126743,13 +196266,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; @@ -126766,7 +196289,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:; @@ -126777,12 +196300,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; @@ -126793,12 +196316,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; @@ -126810,15 +196333,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 @@ -126844,16 +196367,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -126870,18 +196393,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; { @@ -126895,7 +196418,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); @@ -126938,7 +196461,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; @@ -126960,7 +196483,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:; @@ -126973,19 +196496,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; { @@ -126999,7 +196522,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; @@ -127025,24 +196548,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 @@ -127063,107 +196586,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; @@ -127178,31 +196680,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:*/ { @@ -127212,9 +196738,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); @@ -127231,7 +196757,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; } @@ -127299,7 +196825,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; @@ -127311,10 +196837,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); @@ -127330,26 +196859,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 @@ -127370,111 +196899,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 @@ -127496,36 +197004,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:*/ { @@ -127535,7 +197067,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:*/ { @@ -127548,9 +197080,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; { @@ -127559,7 +197091,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); @@ -127663,27 +197195,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; @@ -127701,16 +197242,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); @@ -127723,27 +197267,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; @@ -127759,57 +197306,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 @@ -127832,7 +197403,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:*/ { @@ -127860,13 +197431,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; @@ -127883,7 +197454,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:; @@ -127895,27 +197466,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; @@ -127931,57 +197505,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 @@ -128004,7 +197602,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:*/ { @@ -128032,13 +197630,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; @@ -128055,7 +197653,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:; @@ -128067,22 +197665,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 @@ -128105,7 +197703,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:*/ { @@ -128133,13 +197731,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; @@ -128156,7 +197754,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:; @@ -128167,12 +197765,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; @@ -128183,12 +197781,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; @@ -128200,15 +197798,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 @@ -128234,16 +197832,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -128260,18 +197858,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; { @@ -128285,7 +197883,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); @@ -128328,7 +197926,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; @@ -128350,7 +197948,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:; @@ -128363,19 +197961,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; { @@ -128389,7 +197987,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; @@ -128415,28 +198013,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; @@ -128452,88 +198051,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; @@ -128548,39 +198145,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:*/ { @@ -128590,9 +198203,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); @@ -128609,7 +198222,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; } @@ -128677,7 +198290,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; @@ -128689,11 +198302,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); @@ -128703,37 +198318,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; @@ -128749,92 +198364,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 @@ -128851,50 +198464,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:*/ { @@ -128904,7 +198532,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:*/ { @@ -128917,14 +198545,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; { @@ -128933,7 +198556,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); @@ -129037,59 +198660,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; @@ -129097,19 +198707,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); @@ -129122,28 +198732,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; @@ -129159,52 +198771,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) { @@ -129212,21 +198838,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; @@ -129243,7 +198868,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:*/ { @@ -129271,47 +198896,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; @@ -129319,28 +198931,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; @@ -129356,52 +198970,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) { @@ -129409,21 +199037,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; @@ -129440,7 +199067,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:*/ { @@ -129468,47 +199095,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; @@ -129516,31 +199130,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; @@ -129557,7 +199168,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:*/ { @@ -129585,59 +199196,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; @@ -129648,12 +199246,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; @@ -129665,15 +199263,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 @@ -129699,16 +199297,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -129725,18 +199323,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; { @@ -129750,7 +199348,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); @@ -129793,7 +199391,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; @@ -129815,7 +199413,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:; @@ -129828,19 +199426,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; { @@ -129854,7 +199452,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; @@ -129880,28 +199478,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; @@ -129917,87 +199516,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; @@ -130012,39 +199610,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:*/ { @@ -130054,9 +199668,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); @@ -130073,7 +199687,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; } @@ -130141,7 +199755,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; @@ -130153,11 +199767,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); @@ -130173,30 +199789,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; @@ -130212,91 +199829,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 @@ -130318,44 +199934,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:*/ { @@ -130365,7 +199997,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:*/ { @@ -130378,9 +200010,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; { @@ -130389,7 +200021,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); @@ -130493,30 +200125,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; @@ -130534,17 +200172,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); @@ -130557,28 +200197,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; @@ -130594,52 +200236,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) { @@ -130647,12 +200303,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 @@ -130675,7 +200333,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:*/ { @@ -130703,13 +200361,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; @@ -130726,7 +200384,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:; @@ -130738,28 +200396,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; @@ -130775,52 +200435,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) { @@ -130828,12 +200502,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 @@ -130856,7 +200532,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:*/ { @@ -130884,13 +200560,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; @@ -130907,7 +200583,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:; @@ -130919,22 +200595,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 @@ -130957,7 +200633,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:*/ { @@ -130985,13 +200661,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; @@ -131008,7 +200684,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:; @@ -131019,12 +200695,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; @@ -131035,12 +200711,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; @@ -131052,15 +200728,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 @@ -131086,16 +200762,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -131112,18 +200788,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; { @@ -131137,7 +200813,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); @@ -131180,7 +200856,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; @@ -131202,7 +200878,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:; @@ -131215,19 +200891,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; { @@ -131241,7 +200917,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; @@ -131267,26 +200943,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; @@ -131302,45 +200981,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) { @@ -131350,14 +201050,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; @@ -131372,31 +201075,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:*/ { @@ -131406,9 +201133,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); @@ -131425,7 +201152,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; } @@ -131493,7 +201220,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; @@ -131505,10 +201232,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); @@ -131524,28 +201254,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; @@ -131561,45 +201294,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) { @@ -131609,18 +201363,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 @@ -131642,36 +201399,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:*/ { @@ -131681,7 +201462,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:*/ { @@ -131694,9 +201475,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; { @@ -131705,7 +201486,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); @@ -131809,27 +201590,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; @@ -131847,16 +201637,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); @@ -131869,27 +201662,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; @@ -131905,57 +201701,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 @@ -131978,7 +201798,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:*/ { @@ -132006,13 +201826,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; @@ -132029,7 +201849,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:; @@ -132041,27 +201861,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; @@ -132077,57 +201900,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 @@ -132150,7 +201997,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:*/ { @@ -132178,13 +202025,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; @@ -132201,7 +202048,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:; @@ -132213,22 +202060,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 @@ -132251,7 +202098,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:*/ { @@ -132279,13 +202126,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; @@ -132302,7 +202149,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:; @@ -132313,12 +202160,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; @@ -132329,12 +202176,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; @@ -132346,15 +202193,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 @@ -132380,16 +202227,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -132406,18 +202253,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; { @@ -132431,7 +202278,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); @@ -132474,7 +202321,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; @@ -132496,7 +202343,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:; @@ -132509,19 +202356,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; { @@ -132535,7 +202382,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; @@ -132561,26 +202408,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; @@ -132596,45 +202446,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) { @@ -132644,14 +202515,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; @@ -132666,31 +202540,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:*/ { @@ -132700,9 +202598,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); @@ -132719,7 +202617,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; } @@ -132787,7 +202685,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; @@ -132799,10 +202697,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); @@ -132818,28 +202719,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; @@ -132855,45 +202759,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) { @@ -132903,18 +202828,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 @@ -132936,36 +202864,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:*/ { @@ -132975,7 +202927,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:*/ { @@ -132988,9 +202940,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; { @@ -132999,7 +202951,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); @@ -133103,27 +203055,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; @@ -133141,16 +203102,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); @@ -133163,27 +203127,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; @@ -133199,57 +203166,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 @@ -133272,7 +203263,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:*/ { @@ -133300,13 +203291,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; @@ -133323,7 +203314,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:; @@ -133335,27 +203326,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; @@ -133371,57 +203365,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 @@ -133444,7 +203462,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:*/ { @@ -133472,13 +203490,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; @@ -133495,7 +203513,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:; @@ -133507,22 +203525,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 @@ -133545,7 +203563,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:*/ { @@ -133573,13 +203591,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; @@ -133596,7 +203614,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:; @@ -133607,12 +203625,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; @@ -133623,12 +203641,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; @@ -133640,15 +203658,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 @@ -133674,16 +203692,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -133700,18 +203718,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; { @@ -133725,7 +203743,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); @@ -133768,7 +203786,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; @@ -133790,7 +203808,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:; @@ -133803,19 +203821,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; { @@ -133829,7 +203847,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; @@ -133855,24 +203873,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 @@ -133893,86 +203911,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; @@ -133980,8 +203989,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; @@ -133996,47 +204005,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:*/ { @@ -134046,9 +204063,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); @@ -134065,7 +204082,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; } @@ -134133,7 +204150,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; @@ -134145,9 +204162,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); @@ -134166,26 +204184,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 @@ -134206,86 +204224,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; @@ -134294,11 +204303,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 @@ -134320,52 +204329,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:*/ { @@ -134375,7 +204392,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:*/ { @@ -134388,9 +204405,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; { @@ -134399,7 +204416,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); @@ -134503,33 +204520,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; @@ -134547,9 +204567,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); @@ -134558,7 +204579,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); @@ -134571,21 +204592,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; @@ -134593,7 +204615,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; @@ -134609,59 +204631,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) { @@ -134670,12 +204699,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 @@ -134698,7 +204728,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:*/ { @@ -134726,13 +204756,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; @@ -134749,7 +204779,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:; @@ -134761,21 +204791,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; @@ -134783,7 +204814,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; @@ -134799,59 +204830,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) { @@ -134860,12 +204898,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 @@ -134888,7 +204927,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:*/ { @@ -134916,13 +204955,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; @@ -134939,7 +204978,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:; @@ -134951,22 +204990,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 @@ -134989,7 +205028,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:*/ { @@ -135017,13 +205056,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; @@ -135040,7 +205079,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:; @@ -135051,12 +205090,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; @@ -135067,12 +205106,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; @@ -135084,15 +205123,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 @@ -135118,16 +205157,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -135144,18 +205183,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; { @@ -135169,7 +205208,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); @@ -135212,7 +205251,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; @@ -135234,7 +205273,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:; @@ -135247,19 +205286,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; { @@ -135273,7 +205312,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; @@ -135299,27 +205338,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; @@ -135335,79 +205376,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; @@ -135422,31 +205470,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:*/ { @@ -135456,9 +205528,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); @@ -135475,7 +205547,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; } @@ -135543,7 +205615,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; @@ -135555,10 +205627,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); @@ -135574,29 +205649,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; @@ -135612,83 +205689,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 @@ -135710,36 +205794,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:*/ { @@ -135749,7 +205857,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:*/ { @@ -135762,9 +205870,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; { @@ -135773,7 +205881,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); @@ -135877,27 +205985,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; @@ -135915,16 +206032,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); @@ -135937,27 +206057,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; @@ -135973,57 +206096,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 @@ -136046,7 +206193,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:*/ { @@ -136074,13 +206221,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; @@ -136097,7 +206244,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:; @@ -136109,27 +206256,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; @@ -136145,57 +206295,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 @@ -136218,7 +206392,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:*/ { @@ -136246,13 +206420,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; @@ -136269,7 +206443,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:; @@ -136281,22 +206455,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 @@ -136319,7 +206493,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:*/ { @@ -136347,13 +206521,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; @@ -136370,7 +206544,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:; @@ -136381,12 +206555,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; @@ -136397,12 +206571,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; @@ -136414,15 +206588,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 @@ -136448,16 +206622,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -136474,18 +206648,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; { @@ -136499,7 +206673,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); @@ -136542,7 +206716,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; @@ -136564,7 +206738,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:; @@ -136577,19 +206751,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; { @@ -136603,7 +206777,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; @@ -136629,14 +206803,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 @@ -136669,44 +206843,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]; @@ -136715,18 +206889,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) { @@ -136736,7 +206910,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; @@ -136745,8 +206919,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; @@ -136761,55 +206935,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:*/ { @@ -136819,9 +206993,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); @@ -136838,7 +207012,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; } @@ -136906,7 +207080,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; @@ -136918,7 +207092,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); @@ -136940,16 +207114,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 @@ -136982,44 +207156,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]; @@ -137028,18 +207202,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) { @@ -137049,7 +207223,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; @@ -137059,11 +207233,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 @@ -137085,60 +207259,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:*/ { @@ -137148,7 +207322,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:*/ { @@ -137161,9 +207335,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; { @@ -137172,7 +207346,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); @@ -137276,36 +207450,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; @@ -137323,7 +207497,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); @@ -137335,7 +207509,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); @@ -137348,15 +207522,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 @@ -137389,64 +207563,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) { @@ -137460,8 +207634,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 @@ -137484,7 +207658,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:*/ { @@ -137512,13 +207686,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; @@ -137535,7 +207709,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:; @@ -137547,15 +207721,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 @@ -137588,64 +207762,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) { @@ -137659,8 +207833,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 @@ -137683,7 +207857,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:*/ { @@ -137711,13 +207885,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; @@ -137734,7 +207908,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:; @@ -137746,22 +207920,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 @@ -137784,7 +207958,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:*/ { @@ -137812,13 +207986,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; @@ -137835,7 +208009,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:; @@ -137846,12 +208020,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; @@ -137862,12 +208036,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; @@ -137879,15 +208053,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 @@ -137913,16 +208087,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -137939,18 +208113,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; { @@ -137964,7 +208138,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); @@ -138007,7 +208181,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; @@ -138029,7 +208203,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:; @@ -138042,19 +208216,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; { @@ -138068,7 +208242,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; @@ -138094,30 +208268,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; @@ -138133,123 +208306,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; @@ -138264,31 +208400,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:*/ { @@ -138298,9 +208458,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); @@ -138317,7 +208477,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; } @@ -138385,7 +208545,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; @@ -138397,10 +208557,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); @@ -138410,40 +208573,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; @@ -138459,127 +208619,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 @@ -138596,43 +208719,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:*/ { @@ -138642,7 +208787,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:*/ { @@ -138655,19 +208800,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; { @@ -138676,7 +208811,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); @@ -138780,64 +208915,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; @@ -138845,20 +208962,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); @@ -138871,27 +208987,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; @@ -138907,68 +209026,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; @@ -138985,7 +209123,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:*/ { @@ -139013,54 +209151,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; @@ -139068,27 +209186,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; @@ -139104,68 +209225,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; @@ -139182,7 +209322,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:*/ { @@ -139210,54 +209350,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; @@ -139265,33 +209385,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; @@ -139308,7 +209423,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:*/ { @@ -139336,66 +209451,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; @@ -139406,12 +209501,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; @@ -139423,15 +209518,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 @@ -139457,16 +209552,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -139483,18 +209578,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; { @@ -139508,7 +209603,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); @@ -139551,7 +209646,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; @@ -139573,7 +209668,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:; @@ -139586,19 +209681,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; { @@ -139612,7 +209707,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; @@ -139638,28 +209733,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; @@ -139675,87 +209771,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; @@ -139770,39 +209865,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:*/ { @@ -139812,9 +209923,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); @@ -139831,7 +209942,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; } @@ -139899,7 +210010,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; @@ -139911,11 +210022,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); @@ -139931,30 +210044,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; @@ -139970,91 +210084,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 @@ -140076,44 +210189,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:*/ { @@ -140123,7 +210252,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:*/ { @@ -140136,9 +210265,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; { @@ -140147,7 +210276,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); @@ -140251,30 +210380,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; @@ -140292,17 +210427,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); @@ -140315,28 +210452,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; @@ -140352,52 +210491,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) { @@ -140405,12 +210558,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 @@ -140433,7 +210588,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:*/ { @@ -140461,13 +210616,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; @@ -140484,7 +210639,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:; @@ -140496,28 +210651,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; @@ -140533,52 +210690,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) { @@ -140586,12 +210757,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 @@ -140614,7 +210787,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:*/ { @@ -140642,13 +210815,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; @@ -140665,7 +210838,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:; @@ -140677,22 +210850,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 @@ -140715,7 +210888,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:*/ { @@ -140743,13 +210916,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; @@ -140766,7 +210939,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:; @@ -140777,12 +210950,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; @@ -140793,12 +210966,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; @@ -140810,15 +210983,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 @@ -140844,16 +211017,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -140870,18 +211043,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; { @@ -140895,7 +211068,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); @@ -140938,7 +211111,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; @@ -140960,7 +211133,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:; @@ -140973,19 +211146,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; { @@ -140999,7 +211172,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; @@ -141025,14 +211198,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 @@ -141065,44 +211238,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]; @@ -141111,18 +211284,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) { @@ -141132,7 +211305,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; @@ -141141,8 +211314,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; @@ -141157,55 +211330,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:*/ { @@ -141215,9 +211388,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); @@ -141234,7 +211407,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; } @@ -141302,7 +211475,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; @@ -141314,7 +211487,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); @@ -141336,16 +211509,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 @@ -141378,44 +211551,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]; @@ -141424,18 +211597,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) { @@ -141445,7 +211618,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; @@ -141455,11 +211628,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 @@ -141481,60 +211654,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:*/ { @@ -141544,7 +211717,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:*/ { @@ -141557,9 +211730,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; { @@ -141568,7 +211741,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); @@ -141672,36 +211845,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; @@ -141719,7 +211892,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); @@ -141731,7 +211904,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); @@ -141744,15 +211917,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 @@ -141785,64 +211958,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) { @@ -141856,8 +212029,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 @@ -141880,7 +212053,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:*/ { @@ -141908,13 +212081,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; @@ -141931,7 +212104,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:; @@ -141943,15 +212116,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 @@ -141984,64 +212157,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) { @@ -142055,8 +212228,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 @@ -142079,7 +212252,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:*/ { @@ -142107,13 +212280,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; @@ -142130,7 +212303,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:; @@ -142142,22 +212315,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 @@ -142180,7 +212353,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:*/ { @@ -142208,13 +212381,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; @@ -142231,7 +212404,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:; @@ -142242,12 +212415,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; @@ -142258,12 +212431,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; @@ -142275,15 +212448,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 @@ -142309,16 +212482,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -142335,18 +212508,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; { @@ -142360,7 +212533,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); @@ -142403,7 +212576,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; @@ -142425,7 +212598,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:; @@ -142438,19 +212611,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; { @@ -142464,7 +212637,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; @@ -142490,24 +212663,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 @@ -142528,86 +212701,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; @@ -142615,8 +212779,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; @@ -142631,47 +212795,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:*/ { @@ -142681,9 +212853,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); @@ -142700,7 +212872,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; } @@ -142768,7 +212940,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; @@ -142780,9 +212952,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); @@ -142801,26 +212974,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 @@ -142841,86 +213014,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; @@ -142929,11 +213093,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 @@ -142955,52 +213119,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:*/ { @@ -143010,7 +213182,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:*/ { @@ -143023,9 +213195,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; { @@ -143034,7 +213206,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); @@ -143138,33 +213310,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; @@ -143182,9 +213357,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); @@ -143193,7 +213369,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); @@ -143206,21 +213382,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; @@ -143228,7 +213405,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; @@ -143244,59 +213421,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) { @@ -143305,12 +213489,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 @@ -143333,7 +213518,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:*/ { @@ -143361,13 +213546,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; @@ -143384,7 +213569,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:; @@ -143396,21 +213581,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; @@ -143418,7 +213604,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; @@ -143434,59 +213620,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) { @@ -143495,12 +213688,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 @@ -143523,7 +213717,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:*/ { @@ -143551,13 +213745,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; @@ -143574,7 +213768,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:; @@ -143586,22 +213780,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 @@ -143624,7 +213818,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:*/ { @@ -143652,13 +213846,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; @@ -143675,7 +213869,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:; @@ -143686,12 +213880,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; @@ -143702,12 +213896,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; @@ -143719,15 +213913,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 @@ -143753,16 +213947,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -143779,18 +213973,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; { @@ -143804,7 +213998,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); @@ -143847,7 +214041,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; @@ -143869,7 +214063,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:; @@ -143882,19 +214076,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; { @@ -143908,7 +214102,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; @@ -143934,14 +214128,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 @@ -143974,44 +214168,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]; @@ -144020,18 +214214,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) { @@ -144041,7 +214235,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; @@ -144050,7 +214244,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; @@ -144066,55 +214260,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:*/ { @@ -144124,9 +214318,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); @@ -144143,7 +214337,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; } @@ -144211,7 +214405,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; @@ -144223,7 +214417,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); @@ -144245,16 +214439,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 @@ -144287,44 +214481,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]; @@ -144333,18 +214527,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) { @@ -144354,7 +214548,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; @@ -144367,8 +214561,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 @@ -144390,60 +214584,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:*/ { @@ -144453,7 +214647,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:*/ { @@ -144466,7 +214660,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; @@ -144477,7 +214671,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); @@ -144581,36 +214775,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; @@ -144628,7 +214822,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); @@ -144653,15 +214847,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 @@ -144694,64 +214888,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) { @@ -144765,7 +214959,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; @@ -144789,7 +214983,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:*/ { @@ -144817,13 +215011,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; @@ -144840,7 +215034,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:; @@ -144852,15 +215046,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 @@ -144893,64 +215087,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) { @@ -144964,7 +215158,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; @@ -144988,7 +215182,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:*/ { @@ -145016,13 +215210,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; @@ -145039,7 +215233,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:; @@ -145051,21 +215245,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; @@ -145089,7 +215283,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:*/ { @@ -145117,13 +215311,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; @@ -145140,7 +215334,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:; @@ -145151,12 +215345,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; @@ -145167,12 +215361,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; @@ -145184,15 +215378,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 @@ -145218,16 +215412,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -145244,18 +215438,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; { @@ -145269,7 +215463,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); @@ -145312,7 +215506,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; @@ -145334,7 +215528,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:; @@ -145347,19 +215541,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; { @@ -145373,7 +215567,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; @@ -145399,14 +215593,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 @@ -145439,44 +215633,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]; @@ -145485,18 +215679,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) { @@ -145506,7 +215700,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; @@ -145515,7 +215709,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; @@ -145531,55 +215725,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:*/ { @@ -145589,9 +215783,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); @@ -145608,7 +215802,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; } @@ -145676,7 +215870,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; @@ -145688,7 +215882,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); @@ -145710,16 +215904,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 @@ -145752,44 +215946,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]; @@ -145798,18 +215992,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) { @@ -145819,7 +216013,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; @@ -145832,8 +216026,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 @@ -145855,60 +216049,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:*/ { @@ -145918,7 +216112,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:*/ { @@ -145931,7 +216125,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; @@ -145942,7 +216136,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); @@ -146046,36 +216240,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; @@ -146093,7 +216287,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); @@ -146118,15 +216312,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 @@ -146159,64 +216353,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) { @@ -146230,7 +216424,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; @@ -146254,7 +216448,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:*/ { @@ -146282,13 +216476,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; @@ -146305,7 +216499,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:; @@ -146317,15 +216511,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 @@ -146358,64 +216552,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) { @@ -146429,7 +216623,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; @@ -146453,7 +216647,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:*/ { @@ -146481,13 +216675,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; @@ -146504,7 +216698,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:; @@ -146516,21 +216710,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; @@ -146554,7 +216748,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:*/ { @@ -146582,13 +216776,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; @@ -146605,7 +216799,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:; @@ -146616,12 +216810,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; @@ -146632,12 +216826,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; @@ -146649,15 +216843,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 @@ -146683,16 +216877,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -146709,18 +216903,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; { @@ -146734,7 +216928,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); @@ -146777,7 +216971,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; @@ -146799,7 +216993,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:; @@ -146812,19 +217006,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; { @@ -146838,7 +217032,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; @@ -146864,14 +217058,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 @@ -146904,44 +217098,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]; @@ -146950,18 +217144,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) { @@ -146971,7 +217165,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; @@ -146980,7 +217174,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; @@ -146996,55 +217190,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:*/ { @@ -147054,9 +217248,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); @@ -147073,7 +217267,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; } @@ -147141,7 +217335,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; @@ -147153,7 +217347,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); @@ -147175,16 +217369,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 @@ -147217,44 +217411,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]; @@ -147263,18 +217457,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) { @@ -147284,7 +217478,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; @@ -147297,8 +217491,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 @@ -147320,60 +217514,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:*/ { @@ -147383,7 +217577,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:*/ { @@ -147396,7 +217590,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; @@ -147407,7 +217601,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); @@ -147511,36 +217705,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; @@ -147558,7 +217752,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); @@ -147583,15 +217777,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 @@ -147624,64 +217818,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) { @@ -147695,7 +217889,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; @@ -147719,7 +217913,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:*/ { @@ -147747,13 +217941,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; @@ -147770,7 +217964,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:; @@ -147782,15 +217976,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 @@ -147823,64 +218017,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) { @@ -147894,7 +218088,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; @@ -147918,7 +218112,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:*/ { @@ -147946,13 +218140,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; @@ -147969,7 +218163,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:; @@ -147981,21 +218175,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; @@ -148019,7 +218213,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:*/ { @@ -148047,13 +218241,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; @@ -148070,7 +218264,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:; @@ -148081,12 +218275,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; @@ -148097,12 +218291,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; @@ -148114,15 +218308,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 @@ -148148,16 +218342,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -148174,18 +218368,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; { @@ -148199,7 +218393,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); @@ -148242,7 +218436,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; @@ -148264,7 +218458,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:; @@ -148277,19 +218471,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; { @@ -148303,7 +218497,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; @@ -148329,14 +218523,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 @@ -148369,44 +218563,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]; @@ -148415,18 +218609,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) { @@ -148436,7 +218630,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; @@ -148445,7 +218639,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; @@ -148461,55 +218655,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:*/ { @@ -148519,9 +218713,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); @@ -148538,7 +218732,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; } @@ -148606,7 +218800,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; @@ -148618,7 +218812,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); @@ -148640,16 +218834,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 @@ -148682,44 +218876,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]; @@ -148728,18 +218922,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) { @@ -148749,7 +218943,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; @@ -148762,8 +218956,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 @@ -148785,60 +218979,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:*/ { @@ -148848,7 +219042,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:*/ { @@ -148861,7 +219055,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; @@ -148872,7 +219066,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); @@ -148976,36 +219170,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; @@ -149023,7 +219217,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); @@ -149048,15 +219242,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 @@ -149089,64 +219283,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) { @@ -149160,7 +219354,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; @@ -149184,7 +219378,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:*/ { @@ -149212,13 +219406,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; @@ -149235,7 +219429,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:; @@ -149247,15 +219441,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 @@ -149288,64 +219482,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) { @@ -149359,7 +219553,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; @@ -149383,7 +219577,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:*/ { @@ -149411,13 +219605,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; @@ -149434,7 +219628,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:; @@ -149446,21 +219640,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; @@ -149484,7 +219678,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:*/ { @@ -149512,13 +219706,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; @@ -149535,7 +219729,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:; @@ -149546,12 +219740,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; @@ -149562,12 +219756,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; @@ -149579,15 +219773,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 @@ -149613,16 +219807,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -149639,18 +219833,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; { @@ -149664,7 +219858,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); @@ -149707,7 +219901,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; @@ -149729,7 +219923,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:; @@ -149742,19 +219936,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; { @@ -149768,7 +219962,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; @@ -149794,14 +219988,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 @@ -149834,44 +220028,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]; @@ -149880,18 +220074,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) { @@ -149901,7 +220095,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; @@ -149910,7 +220104,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; @@ -149926,55 +220120,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:*/ { @@ -149984,9 +220178,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); @@ -150003,7 +220197,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; } @@ -150071,7 +220265,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; @@ -150083,7 +220277,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); @@ -150105,16 +220299,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 @@ -150147,44 +220341,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]; @@ -150193,18 +220387,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) { @@ -150214,7 +220408,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; @@ -150227,8 +220421,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 @@ -150250,60 +220444,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:*/ { @@ -150313,7 +220507,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:*/ { @@ -150326,7 +220520,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; @@ -150337,7 +220531,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); @@ -150441,36 +220635,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; @@ -150488,7 +220682,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); @@ -150513,15 +220707,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 @@ -150554,64 +220748,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) { @@ -150625,7 +220819,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; @@ -150649,7 +220843,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:*/ { @@ -150677,13 +220871,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; @@ -150700,7 +220894,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:; @@ -150712,15 +220906,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 @@ -150753,64 +220947,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) { @@ -150824,7 +221018,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; @@ -150848,7 +221042,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:*/ { @@ -150876,13 +221070,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; @@ -150899,7 +221093,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:; @@ -150911,21 +221105,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; @@ -150949,7 +221143,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:*/ { @@ -150977,13 +221171,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; @@ -151000,7 +221194,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:; @@ -151011,12 +221205,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; @@ -151027,12 +221221,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; @@ -151044,15 +221238,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 @@ -151078,16 +221272,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -151104,18 +221298,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; { @@ -151129,7 +221323,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); @@ -151172,7 +221366,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; @@ -151194,7 +221388,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:; @@ -151207,19 +221401,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; { @@ -151233,7 +221427,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; @@ -151259,14 +221453,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 @@ -151299,44 +221493,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]; @@ -151345,18 +221539,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) { @@ -151366,7 +221560,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; @@ -151375,7 +221569,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; @@ -151391,55 +221585,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:*/ { @@ -151449,9 +221643,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); @@ -151468,7 +221662,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; } @@ -151536,7 +221730,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; @@ -151548,7 +221742,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); @@ -151570,16 +221764,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 @@ -151612,44 +221806,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]; @@ -151658,18 +221852,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) { @@ -151679,7 +221873,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; @@ -151692,8 +221886,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 @@ -151715,60 +221909,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:*/ { @@ -151778,7 +221972,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:*/ { @@ -151791,7 +221985,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; @@ -151802,7 +221996,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); @@ -151906,36 +222100,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; @@ -151953,7 +222147,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); @@ -151978,15 +222172,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 @@ -152019,64 +222213,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) { @@ -152090,7 +222284,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; @@ -152114,7 +222308,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:*/ { @@ -152142,13 +222336,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; @@ -152165,7 +222359,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:; @@ -152177,15 +222371,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 @@ -152218,64 +222412,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) { @@ -152289,7 +222483,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; @@ -152313,7 +222507,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:*/ { @@ -152341,13 +222535,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; @@ -152364,7 +222558,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:; @@ -152376,21 +222570,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; @@ -152414,7 +222608,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:*/ { @@ -152442,13 +222636,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; @@ -152465,7 +222659,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:; @@ -152476,12 +222670,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; @@ -152492,12 +222686,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; @@ -152509,15 +222703,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 @@ -152543,16 +222737,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -152569,18 +222763,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; { @@ -152594,7 +222788,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); @@ -152637,7 +222831,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; @@ -152659,7 +222853,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:; @@ -152672,19 +222866,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; { @@ -152698,7 +222892,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; @@ -152724,14 +222918,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 @@ -152764,44 +222958,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]; @@ -152810,18 +223004,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) { @@ -152831,7 +223025,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; @@ -152840,7 +223034,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; @@ -152856,55 +223050,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:*/ { @@ -152914,9 +223108,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); @@ -152933,7 +223127,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; } @@ -153001,7 +223195,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; @@ -153013,7 +223207,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); @@ -153035,16 +223229,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 @@ -153077,44 +223271,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]; @@ -153123,18 +223317,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) { @@ -153144,7 +223338,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; @@ -153157,8 +223351,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 @@ -153180,60 +223374,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:*/ { @@ -153243,7 +223437,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:*/ { @@ -153256,7 +223450,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; @@ -153267,7 +223461,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); @@ -153371,36 +223565,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; @@ -153418,7 +223612,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); @@ -153443,15 +223637,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 @@ -153484,64 +223678,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) { @@ -153555,7 +223749,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; @@ -153579,7 +223773,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:*/ { @@ -153607,13 +223801,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; @@ -153630,7 +223824,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:; @@ -153642,15 +223836,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 @@ -153683,64 +223877,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) { @@ -153754,7 +223948,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; @@ -153778,7 +223972,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:*/ { @@ -153806,13 +224000,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; @@ -153829,7 +224023,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:; @@ -153841,21 +224035,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; @@ -153879,7 +224073,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:*/ { @@ -153907,13 +224101,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; @@ -153930,7 +224124,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:; @@ -153941,12 +224135,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; @@ -153957,12 +224151,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; @@ -153974,15 +224168,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 @@ -154008,16 +224202,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -154034,18 +224228,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; { @@ -154059,7 +224253,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); @@ -154102,7 +224296,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; @@ -154124,7 +224318,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:; @@ -154137,19 +224331,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; { @@ -154163,7 +224357,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; @@ -154189,14 +224383,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 @@ -154207,12 +224401,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; @@ -154228,93 +224421,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; @@ -154323,7 +224499,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; @@ -154339,55 +224515,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:*/ { @@ -154397,9 +224573,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); @@ -154416,7 +224592,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; } @@ -154484,7 +224660,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; @@ -154496,7 +224672,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); @@ -154518,16 +224694,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 @@ -154538,12 +224714,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; @@ -154559,93 +224734,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; @@ -154658,8 +224816,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 @@ -154681,60 +224839,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:*/ { @@ -154744,7 +224902,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:*/ { @@ -154757,7 +224915,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; @@ -154768,7 +224926,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); @@ -154872,36 +225030,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; @@ -154919,7 +225077,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); @@ -154944,15 +225102,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 @@ -154985,64 +225143,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) { @@ -155056,7 +225214,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; @@ -155080,7 +225238,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:*/ { @@ -155108,13 +225266,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; @@ -155131,7 +225289,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:; @@ -155143,15 +225301,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 @@ -155184,64 +225342,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) { @@ -155255,7 +225413,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; @@ -155279,7 +225437,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:*/ { @@ -155307,13 +225465,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; @@ -155330,7 +225488,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:; @@ -155342,21 +225500,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; @@ -155380,7 +225538,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:*/ { @@ -155408,13 +225566,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; @@ -155431,7 +225589,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:; @@ -155442,12 +225600,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; @@ -155458,12 +225616,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; @@ -155475,15 +225633,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 @@ -155509,16 +225667,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -155535,18 +225693,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; { @@ -155560,7 +225718,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); @@ -155603,7 +225761,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; @@ -155625,7 +225783,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:; @@ -155638,19 +225796,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; { @@ -155664,7 +225822,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; @@ -155690,14 +225848,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 @@ -155708,11 +225866,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; @@ -155728,76 +225887,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; @@ -155806,7 +225982,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; @@ -155822,55 +225998,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:*/ { @@ -155880,9 +226056,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); @@ -155899,7 +226075,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; } @@ -155967,7 +226143,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; @@ -155979,7 +226155,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); @@ -156001,16 +226177,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 @@ -156021,11 +226197,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; @@ -156041,76 +226218,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; @@ -156123,8 +226317,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 @@ -156146,60 +226340,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:*/ { @@ -156209,7 +226403,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:*/ { @@ -156222,7 +226416,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; @@ -156233,7 +226427,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); @@ -156337,36 +226531,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; @@ -156384,7 +226578,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); @@ -156409,15 +226603,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 @@ -156450,64 +226644,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) { @@ -156521,7 +226715,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; @@ -156545,7 +226739,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:*/ { @@ -156573,13 +226767,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; @@ -156596,7 +226790,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:; @@ -156608,15 +226802,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 @@ -156649,64 +226843,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) { @@ -156720,7 +226914,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; @@ -156744,7 +226938,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:*/ { @@ -156772,13 +226966,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; @@ -156795,7 +226989,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:; @@ -156807,21 +227001,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; @@ -156845,7 +227039,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:*/ { @@ -156873,13 +227067,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; @@ -156896,7 +227090,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:; @@ -156907,12 +227101,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; @@ -156923,12 +227117,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; @@ -156940,15 +227134,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 @@ -156974,16 +227168,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -157000,18 +227194,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; { @@ -157025,7 +227219,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); @@ -157068,7 +227262,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; @@ -157090,7 +227284,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:; @@ -157103,19 +227297,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; { @@ -157129,7 +227323,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; @@ -157155,14 +227349,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 @@ -157173,11 +227367,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; @@ -157193,76 +227388,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; @@ -157271,7 +227483,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; @@ -157287,55 +227499,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:*/ { @@ -157345,9 +227557,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); @@ -157364,7 +227576,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; } @@ -157432,7 +227644,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; @@ -157444,7 +227656,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); @@ -157466,16 +227678,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 @@ -157486,11 +227698,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; @@ -157506,76 +227719,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; @@ -157588,8 +227818,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 @@ -157611,60 +227841,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:*/ { @@ -157674,7 +227904,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:*/ { @@ -157687,7 +227917,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; @@ -157698,7 +227928,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); @@ -157802,36 +228032,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; @@ -157849,7 +228079,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); @@ -157874,15 +228104,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 @@ -157915,64 +228145,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) { @@ -157986,7 +228216,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; @@ -158010,7 +228240,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:*/ { @@ -158038,13 +228268,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; @@ -158061,7 +228291,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:; @@ -158073,15 +228303,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 @@ -158114,64 +228344,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) { @@ -158185,7 +228415,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; @@ -158209,7 +228439,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:*/ { @@ -158237,13 +228467,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; @@ -158260,7 +228490,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:; @@ -158272,21 +228502,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; @@ -158310,7 +228540,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:*/ { @@ -158338,13 +228568,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; @@ -158361,7 +228591,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:; @@ -158372,12 +228602,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; @@ -158388,12 +228618,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; @@ -158405,15 +228635,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 @@ -158439,16 +228669,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -158465,18 +228695,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; { @@ -158490,7 +228720,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); @@ -158533,7 +228763,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; @@ -158555,7 +228785,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:; @@ -158568,19 +228798,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; { @@ -158594,7 +228824,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; @@ -158620,14 +228850,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 @@ -158638,11 +228868,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; @@ -158658,76 +228889,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; @@ -158736,7 +228984,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; @@ -158752,55 +229000,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:*/ { @@ -158810,9 +229058,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); @@ -158829,7 +229077,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; } @@ -158897,7 +229145,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; @@ -158909,7 +229157,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); @@ -158931,16 +229179,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 @@ -158951,11 +229199,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; @@ -158971,76 +229220,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; @@ -159053,8 +229319,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 @@ -159076,60 +229342,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:*/ { @@ -159139,7 +229405,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:*/ { @@ -159152,7 +229418,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; @@ -159163,7 +229429,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); @@ -159267,36 +229533,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; @@ -159314,7 +229580,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); @@ -159339,15 +229605,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 @@ -159380,64 +229646,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) { @@ -159451,7 +229717,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; @@ -159475,7 +229741,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:*/ { @@ -159503,13 +229769,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; @@ -159526,7 +229792,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:; @@ -159538,15 +229804,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 @@ -159579,64 +229845,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) { @@ -159650,7 +229916,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; @@ -159674,7 +229940,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:*/ { @@ -159702,13 +229968,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; @@ -159725,7 +229991,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:; @@ -159737,21 +230003,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; @@ -159775,7 +230041,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:*/ { @@ -159803,13 +230069,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; @@ -159826,7 +230092,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:; @@ -159837,12 +230103,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; @@ -159853,12 +230119,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; @@ -159870,15 +230136,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 @@ -159904,16 +230170,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -159930,18 +230196,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; { @@ -159955,7 +230221,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); @@ -159998,7 +230264,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; @@ -160020,7 +230286,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:; @@ -160033,19 +230299,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; { @@ -160059,7 +230325,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; @@ -160085,14 +230351,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 @@ -160125,44 +230391,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]; @@ -160171,18 +230437,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) { @@ -160192,7 +230458,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; @@ -160201,7 +230467,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; @@ -160217,55 +230483,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:*/ { @@ -160275,9 +230541,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); @@ -160294,7 +230560,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; } @@ -160362,7 +230628,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; @@ -160374,7 +230640,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); @@ -160396,16 +230662,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 @@ -160438,44 +230704,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]; @@ -160484,18 +230750,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) { @@ -160505,7 +230771,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; @@ -160518,8 +230784,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 @@ -160541,60 +230807,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:*/ { @@ -160604,7 +230870,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:*/ { @@ -160617,7 +230883,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; @@ -160628,7 +230894,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); @@ -160732,36 +230998,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; @@ -160779,7 +231045,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); @@ -160804,15 +231070,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 @@ -160845,64 +231111,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) { @@ -160916,7 +231182,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; @@ -160940,7 +231206,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:*/ { @@ -160968,13 +231234,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; @@ -160991,7 +231257,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:; @@ -161003,15 +231269,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 @@ -161044,64 +231310,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) { @@ -161115,7 +231381,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; @@ -161139,7 +231405,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:*/ { @@ -161167,13 +231433,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; @@ -161190,7 +231456,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:; @@ -161202,21 +231468,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; @@ -161240,7 +231506,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:*/ { @@ -161268,13 +231534,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; @@ -161291,7 +231557,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:; @@ -161302,12 +231568,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; @@ -161318,12 +231584,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; @@ -161335,15 +231601,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 @@ -161369,16 +231635,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -161395,18 +231661,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; { @@ -161420,7 +231686,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); @@ -161463,7 +231729,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; @@ -161485,7 +231751,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:; @@ -161498,19 +231764,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; { @@ -161524,7 +231790,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; @@ -161550,14 +231816,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 @@ -161590,44 +231856,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]; @@ -161636,18 +231902,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) { @@ -161657,7 +231923,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; @@ -161666,7 +231932,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; @@ -161682,55 +231948,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:*/ { @@ -161740,9 +232006,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); @@ -161759,7 +232025,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; } @@ -161827,7 +232093,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; @@ -161839,7 +232105,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); @@ -161861,16 +232127,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 @@ -161903,44 +232169,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]; @@ -161949,18 +232215,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) { @@ -161970,7 +232236,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; @@ -161983,8 +232249,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 @@ -162006,60 +232272,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:*/ { @@ -162069,7 +232335,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:*/ { @@ -162082,7 +232348,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; @@ -162093,7 +232359,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); @@ -162197,36 +232463,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; @@ -162244,7 +232510,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); @@ -162269,15 +232535,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 @@ -162310,64 +232576,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) { @@ -162381,7 +232647,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; @@ -162405,7 +232671,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:*/ { @@ -162433,13 +232699,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; @@ -162456,7 +232722,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:; @@ -162468,15 +232734,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 @@ -162509,64 +232775,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) { @@ -162580,7 +232846,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; @@ -162604,7 +232870,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:*/ { @@ -162632,13 +232898,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; @@ -162655,7 +232921,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:; @@ -162667,21 +232933,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; @@ -162705,7 +232971,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:*/ { @@ -162733,13 +232999,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; @@ -162756,7 +233022,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:; @@ -162767,12 +233033,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; @@ -162783,12 +233049,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; @@ -162800,15 +233066,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 @@ -162834,16 +233100,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -162860,18 +233126,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; { @@ -162885,7 +233151,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); @@ -162928,7 +233194,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; @@ -162950,7 +233216,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:; @@ -162963,19 +233229,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; { @@ -162989,7 +233255,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; @@ -163015,14 +233281,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 @@ -163055,44 +233321,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]; @@ -163101,18 +233367,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) { @@ -163122,7 +233388,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; @@ -163131,7 +233397,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; @@ -163147,55 +233413,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:*/ { @@ -163205,9 +233471,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); @@ -163224,7 +233490,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; } @@ -163292,7 +233558,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; @@ -163304,7 +233570,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); @@ -163326,16 +233592,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 @@ -163368,44 +233634,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]; @@ -163414,18 +233680,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) { @@ -163435,7 +233701,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; @@ -163448,8 +233714,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 @@ -163471,60 +233737,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:*/ { @@ -163534,7 +233800,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:*/ { @@ -163547,7 +233813,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; @@ -163558,7 +233824,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); @@ -163662,36 +233928,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; @@ -163709,7 +233975,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); @@ -163734,15 +234000,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 @@ -163775,64 +234041,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) { @@ -163846,7 +234112,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; @@ -163870,7 +234136,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:*/ { @@ -163898,13 +234164,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; @@ -163921,7 +234187,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:; @@ -163933,15 +234199,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 @@ -163974,64 +234240,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) { @@ -164045,7 +234311,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; @@ -164069,7 +234335,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:*/ { @@ -164097,13 +234363,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; @@ -164120,7 +234386,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:; @@ -164132,21 +234398,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; @@ -164170,7 +234436,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:*/ { @@ -164198,13 +234464,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; @@ -164221,7 +234487,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:; @@ -164232,12 +234498,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; @@ -164248,12 +234514,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; @@ -164265,15 +234531,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 @@ -164299,16 +234565,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -164325,18 +234591,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; { @@ -164350,7 +234616,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); @@ -164393,7 +234659,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; @@ -164415,7 +234681,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:; @@ -164428,19 +234694,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; { @@ -164454,7 +234720,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; @@ -164480,14 +234746,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 @@ -164498,12 +234764,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; @@ -164519,93 +234784,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; @@ -164614,7 +234862,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; @@ -164630,55 +234878,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:*/ { @@ -164688,9 +234936,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); @@ -164707,7 +234955,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; } @@ -164775,7 +235023,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; @@ -164787,7 +235035,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); @@ -164809,16 +235057,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 @@ -164829,12 +235077,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; @@ -164850,93 +235097,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; @@ -164949,8 +235179,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 @@ -164972,60 +235202,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:*/ { @@ -165035,7 +235265,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:*/ { @@ -165048,7 +235278,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; @@ -165059,7 +235289,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); @@ -165163,36 +235393,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; @@ -165210,7 +235440,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); @@ -165235,15 +235465,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 @@ -165276,64 +235506,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) { @@ -165347,7 +235577,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; @@ -165371,7 +235601,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:*/ { @@ -165399,13 +235629,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; @@ -165422,7 +235652,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:; @@ -165434,15 +235664,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 @@ -165475,64 +235705,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) { @@ -165546,7 +235776,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; @@ -165570,7 +235800,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:*/ { @@ -165598,13 +235828,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; @@ -165621,7 +235851,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:; @@ -165633,21 +235863,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; @@ -165671,7 +235901,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:*/ { @@ -165699,13 +235929,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; @@ -165722,7 +235952,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:; @@ -165733,12 +235963,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; @@ -165749,12 +235979,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; @@ -165766,15 +235996,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 @@ -165800,16 +236030,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -165826,18 +236056,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; { @@ -165851,7 +236081,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); @@ -165894,7 +236124,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; @@ -165916,7 +236146,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:; @@ -165929,19 +236159,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; { @@ -165955,7 +236185,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; @@ -165981,14 +236211,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 @@ -166021,44 +236251,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]; @@ -166067,18 +236297,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) { @@ -166088,7 +236318,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; @@ -166097,7 +236327,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; @@ -166113,55 +236343,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:*/ { @@ -166171,9 +236401,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); @@ -166190,7 +236420,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; } @@ -166258,7 +236488,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; @@ -166270,7 +236500,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); @@ -166292,16 +236522,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 @@ -166334,44 +236564,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]; @@ -166380,18 +236610,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) { @@ -166401,7 +236631,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; @@ -166414,8 +236644,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 @@ -166437,60 +236667,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:*/ { @@ -166500,7 +236730,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:*/ { @@ -166513,7 +236743,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; @@ -166524,7 +236754,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); @@ -166628,36 +236858,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; @@ -166675,7 +236905,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); @@ -166700,15 +236930,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 @@ -166741,64 +236971,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) { @@ -166812,7 +237042,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; @@ -166836,7 +237066,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:*/ { @@ -166864,13 +237094,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; @@ -166887,7 +237117,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:; @@ -166899,15 +237129,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 @@ -166940,64 +237170,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) { @@ -167011,7 +237241,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; @@ -167035,7 +237265,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:*/ { @@ -167063,13 +237293,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; @@ -167086,7 +237316,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:; @@ -167098,21 +237328,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; @@ -167136,7 +237366,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:*/ { @@ -167164,13 +237394,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; @@ -167187,7 +237417,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:; @@ -167198,12 +237428,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; @@ -167214,12 +237444,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; @@ -167231,15 +237461,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 @@ -167265,16 +237495,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -167291,18 +237521,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; { @@ -167316,7 +237546,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); @@ -167359,7 +237589,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; @@ -167381,7 +237611,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:; @@ -167394,19 +237624,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; { @@ -167420,7 +237650,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; @@ -167446,14 +237676,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 @@ -167486,44 +237716,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]; @@ -167532,18 +237762,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) { @@ -167553,7 +237783,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; @@ -167562,7 +237792,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; @@ -167578,55 +237808,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:*/ { @@ -167636,9 +237866,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); @@ -167655,7 +237885,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; } @@ -167723,7 +237953,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; @@ -167735,7 +237965,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); @@ -167757,16 +237987,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 @@ -167799,44 +238029,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]; @@ -167845,18 +238075,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) { @@ -167866,7 +238096,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; @@ -167879,8 +238109,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 @@ -167902,60 +238132,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:*/ { @@ -167965,7 +238195,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:*/ { @@ -167978,7 +238208,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; @@ -167989,7 +238219,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); @@ -168093,36 +238323,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; @@ -168140,7 +238370,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); @@ -168165,15 +238395,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 @@ -168206,64 +238436,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) { @@ -168277,7 +238507,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; @@ -168301,7 +238531,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:*/ { @@ -168329,13 +238559,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; @@ -168352,7 +238582,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:; @@ -168364,15 +238594,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 @@ -168405,64 +238635,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) { @@ -168476,7 +238706,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; @@ -168500,7 +238730,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:*/ { @@ -168528,13 +238758,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; @@ -168551,7 +238781,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:; @@ -168563,21 +238793,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; @@ -168601,7 +238831,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:*/ { @@ -168629,13 +238859,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; @@ -168652,7 +238882,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:; @@ -168663,12 +238893,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; @@ -168679,12 +238909,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; @@ -168696,15 +238926,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 @@ -168730,16 +238960,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -168756,18 +238986,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; { @@ -168781,7 +239011,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); @@ -168824,7 +239054,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; @@ -168846,7 +239076,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:; @@ -168859,19 +239089,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; { @@ -168885,7 +239115,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; @@ -168911,14 +239141,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 @@ -168951,44 +239181,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]; @@ -168997,18 +239227,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) { @@ -169018,7 +239248,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; @@ -169027,7 +239257,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; @@ -169043,55 +239273,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:*/ { @@ -169101,9 +239331,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); @@ -169120,7 +239350,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; } @@ -169188,7 +239418,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; @@ -169200,7 +239430,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); @@ -169222,16 +239452,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 @@ -169264,44 +239494,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]; @@ -169310,18 +239540,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) { @@ -169331,7 +239561,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; @@ -169344,8 +239574,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 @@ -169367,60 +239597,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:*/ { @@ -169430,7 +239660,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:*/ { @@ -169443,7 +239673,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; @@ -169454,7 +239684,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); @@ -169558,36 +239788,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; @@ -169605,7 +239835,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); @@ -169630,15 +239860,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 @@ -169671,64 +239901,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) { @@ -169742,7 +239972,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; @@ -169766,7 +239996,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:*/ { @@ -169794,13 +240024,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; @@ -169817,7 +240047,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:; @@ -169829,15 +240059,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 @@ -169870,64 +240100,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) { @@ -169941,7 +240171,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; @@ -169965,7 +240195,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:*/ { @@ -169993,13 +240223,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; @@ -170016,7 +240246,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:; @@ -170028,21 +240258,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; @@ -170066,7 +240296,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:*/ { @@ -170094,13 +240324,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; @@ -170117,7 +240347,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:; @@ -170128,12 +240358,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; @@ -170144,12 +240374,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; @@ -170161,15 +240391,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 @@ -170195,16 +240425,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -170221,18 +240451,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; { @@ -170246,7 +240476,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); @@ -170289,7 +240519,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; @@ -170311,7 +240541,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:; @@ -170324,19 +240554,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; { @@ -170350,7 +240580,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; @@ -170376,14 +240606,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 @@ -170416,44 +240646,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]; @@ -170462,18 +240692,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) { @@ -170483,7 +240713,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; @@ -170492,7 +240722,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; @@ -170508,55 +240738,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:*/ { @@ -170566,9 +240796,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); @@ -170585,7 +240815,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; } @@ -170653,7 +240883,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; @@ -170665,7 +240895,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); @@ -170687,16 +240917,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 @@ -170729,44 +240959,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]; @@ -170775,18 +241005,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) { @@ -170796,7 +241026,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; @@ -170809,8 +241039,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 @@ -170832,60 +241062,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:*/ { @@ -170895,7 +241125,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:*/ { @@ -170908,7 +241138,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; @@ -170919,7 +241149,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); @@ -171023,36 +241253,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; @@ -171070,7 +241300,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); @@ -171095,15 +241325,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 @@ -171136,64 +241366,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) { @@ -171207,7 +241437,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; @@ -171231,7 +241461,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:*/ { @@ -171259,13 +241489,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; @@ -171282,7 +241512,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:; @@ -171294,15 +241524,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 @@ -171335,64 +241565,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) { @@ -171406,7 +241636,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; @@ -171430,7 +241660,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:*/ { @@ -171458,13 +241688,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; @@ -171481,7 +241711,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:; @@ -171493,21 +241723,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; @@ -171531,7 +241761,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:*/ { @@ -171559,13 +241789,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; @@ -171582,7 +241812,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:; @@ -171593,12 +241823,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; @@ -171609,12 +241839,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; @@ -171626,15 +241856,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 @@ -171660,16 +241890,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -171686,18 +241916,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; { @@ -171711,7 +241941,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); @@ -171754,7 +241984,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; @@ -171776,7 +242006,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:; @@ -171789,19 +242019,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; { @@ -171815,7 +242045,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; @@ -171841,14 +242071,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 @@ -171859,12 +242089,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; @@ -171880,93 +242109,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; @@ -171975,7 +242187,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; @@ -171991,55 +242203,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:*/ { @@ -172049,9 +242261,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); @@ -172068,7 +242280,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; } @@ -172136,7 +242348,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; @@ -172148,7 +242360,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); @@ -172170,16 +242382,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 @@ -172190,12 +242402,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; @@ -172211,93 +242422,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; @@ -172310,8 +242504,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 @@ -172333,60 +242527,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:*/ { @@ -172396,7 +242590,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:*/ { @@ -172409,7 +242603,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; @@ -172420,7 +242614,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); @@ -172524,36 +242718,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; @@ -172571,7 +242765,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); @@ -172596,15 +242790,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 @@ -172637,64 +242831,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) { @@ -172708,7 +242902,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; @@ -172732,7 +242926,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:*/ { @@ -172760,13 +242954,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; @@ -172783,7 +242977,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:; @@ -172795,15 +242989,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 @@ -172836,64 +243030,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) { @@ -172907,7 +243101,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; @@ -172931,7 +243125,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:*/ { @@ -172959,13 +243153,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; @@ -172982,7 +243176,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:; @@ -172994,21 +243188,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; @@ -173032,7 +243226,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:*/ { @@ -173060,13 +243254,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; @@ -173083,7 +243277,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:; @@ -173094,12 +243288,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; @@ -173110,12 +243304,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; @@ -173127,15 +243321,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 @@ -173161,16 +243355,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -173187,18 +243381,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; { @@ -173212,7 +243406,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); @@ -173255,7 +243449,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; @@ -173277,7 +243471,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:; @@ -173290,19 +243484,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; { @@ -173316,7 +243510,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; @@ -173342,14 +243536,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 @@ -173360,12 +243554,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; @@ -173381,93 +243574,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; @@ -173476,7 +243652,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; @@ -173492,55 +243668,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:*/ { @@ -173550,9 +243726,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); @@ -173569,7 +243745,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; } @@ -173637,7 +243813,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; @@ -173649,7 +243825,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); @@ -173671,16 +243847,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 @@ -173691,12 +243867,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; @@ -173712,93 +243887,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; @@ -173811,8 +243969,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 @@ -173834,60 +243992,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:*/ { @@ -173897,7 +244055,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:*/ { @@ -173910,7 +244068,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; @@ -173921,7 +244079,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); @@ -174025,36 +244183,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; @@ -174072,7 +244230,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); @@ -174097,15 +244255,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 @@ -174138,64 +244296,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) { @@ -174209,7 +244367,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; @@ -174233,7 +244391,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:*/ { @@ -174261,13 +244419,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; @@ -174284,7 +244442,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:; @@ -174296,15 +244454,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 @@ -174337,64 +244495,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) { @@ -174408,7 +244566,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; @@ -174432,7 +244590,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:*/ { @@ -174460,13 +244618,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; @@ -174483,7 +244641,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:; @@ -174495,21 +244653,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; @@ -174533,7 +244691,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:*/ { @@ -174561,13 +244719,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; @@ -174584,7 +244742,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:; @@ -174595,12 +244753,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; @@ -174611,12 +244769,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; @@ -174628,15 +244786,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 @@ -174662,16 +244820,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -174688,18 +244846,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; { @@ -174713,7 +244871,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); @@ -174756,7 +244914,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; @@ -174778,7 +244936,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:; @@ -174791,19 +244949,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; { @@ -174817,7 +244975,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; @@ -174843,14 +245001,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 @@ -174883,44 +245041,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]; @@ -174929,18 +245087,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) { @@ -174950,7 +245108,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; @@ -174959,7 +245117,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; @@ -174975,55 +245133,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:*/ { @@ -175033,9 +245191,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); @@ -175052,7 +245210,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; } @@ -175120,7 +245278,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; @@ -175132,7 +245290,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); @@ -175154,16 +245312,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 @@ -175196,44 +245354,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]; @@ -175242,18 +245400,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) { @@ -175263,7 +245421,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; @@ -175276,8 +245434,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 @@ -175299,60 +245457,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:*/ { @@ -175362,7 +245520,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:*/ { @@ -175375,7 +245533,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; @@ -175386,7 +245544,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); @@ -175490,36 +245648,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; @@ -175537,7 +245695,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); @@ -175562,15 +245720,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 @@ -175603,64 +245761,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) { @@ -175674,7 +245832,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; @@ -175698,7 +245856,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:*/ { @@ -175726,13 +245884,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; @@ -175749,7 +245907,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:; @@ -175761,15 +245919,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 @@ -175802,64 +245960,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) { @@ -175873,7 +246031,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; @@ -175897,7 +246055,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:*/ { @@ -175925,13 +246083,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; @@ -175948,7 +246106,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:; @@ -175960,21 +246118,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; @@ -175998,7 +246156,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:*/ { @@ -176026,13 +246184,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; @@ -176049,7 +246207,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:; @@ -176060,12 +246218,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; @@ -176076,12 +246234,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; @@ -176093,15 +246251,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 @@ -176127,16 +246285,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -176153,18 +246311,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; { @@ -176178,7 +246336,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); @@ -176221,7 +246379,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; @@ -176243,7 +246401,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:; @@ -176256,19 +246414,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; { @@ -176282,7 +246440,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; @@ -176308,14 +246466,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 @@ -176348,44 +246506,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]; @@ -176394,18 +246552,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) { @@ -176415,7 +246573,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; @@ -176424,7 +246582,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; @@ -176440,55 +246598,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:*/ { @@ -176498,9 +246656,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); @@ -176517,7 +246675,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; } @@ -176585,7 +246743,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; @@ -176597,7 +246755,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); @@ -176619,16 +246777,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 @@ -176661,44 +246819,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]; @@ -176707,18 +246865,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) { @@ -176728,7 +246886,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; @@ -176741,8 +246899,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 @@ -176764,60 +246922,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:*/ { @@ -176827,7 +246985,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:*/ { @@ -176840,7 +246998,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; @@ -176851,7 +247009,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); @@ -176955,36 +247113,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; @@ -177002,7 +247160,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); @@ -177027,15 +247185,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 @@ -177068,64 +247226,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) { @@ -177139,7 +247297,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; @@ -177163,7 +247321,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:*/ { @@ -177191,13 +247349,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; @@ -177214,7 +247372,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:; @@ -177226,15 +247384,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 @@ -177267,64 +247425,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) { @@ -177338,7 +247496,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; @@ -177362,7 +247520,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:*/ { @@ -177390,13 +247548,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; @@ -177413,7 +247571,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:; @@ -177425,21 +247583,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; @@ -177463,7 +247621,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:*/ { @@ -177491,13 +247649,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; @@ -177514,7 +247672,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:; @@ -177525,12 +247683,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; @@ -177541,12 +247699,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; @@ -177558,15 +247716,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 @@ -177592,16 +247750,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -177618,18 +247776,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; { @@ -177643,7 +247801,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); @@ -177686,7 +247844,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; @@ -177708,7 +247866,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:; @@ -177721,19 +247879,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; { @@ -177747,7 +247905,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; @@ -177773,14 +247931,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 @@ -177813,44 +247971,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]; @@ -177859,18 +248017,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) { @@ -177880,7 +248038,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; @@ -177889,7 +248047,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; @@ -177905,55 +248063,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:*/ { @@ -177963,9 +248121,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); @@ -177982,7 +248140,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; } @@ -178050,7 +248208,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; @@ -178062,7 +248220,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); @@ -178084,16 +248242,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 @@ -178126,44 +248284,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]; @@ -178172,18 +248330,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) { @@ -178193,7 +248351,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; @@ -178206,8 +248364,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 @@ -178229,60 +248387,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:*/ { @@ -178292,7 +248450,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:*/ { @@ -178305,7 +248463,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; @@ -178316,7 +248474,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); @@ -178420,36 +248578,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; @@ -178467,7 +248625,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); @@ -178492,15 +248650,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 @@ -178533,64 +248691,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) { @@ -178604,7 +248762,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; @@ -178628,7 +248786,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:*/ { @@ -178656,13 +248814,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; @@ -178679,7 +248837,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:; @@ -178691,15 +248849,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 @@ -178732,64 +248890,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) { @@ -178803,7 +248961,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; @@ -178827,7 +248985,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:*/ { @@ -178855,13 +249013,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; @@ -178878,7 +249036,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:; @@ -178890,21 +249048,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; @@ -178928,7 +249086,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:*/ { @@ -178956,13 +249114,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; @@ -178979,7 +249137,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:; @@ -178990,12 +249148,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; @@ -179006,12 +249164,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; @@ -179023,15 +249181,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 @@ -179057,16 +249215,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -179083,18 +249241,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; { @@ -179108,7 +249266,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); @@ -179151,7 +249309,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; @@ -179173,7 +249331,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:; @@ -179186,19 +249344,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; { @@ -179212,7 +249370,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; @@ -179238,14 +249396,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 @@ -179278,44 +249436,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]; @@ -179324,18 +249482,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) { @@ -179345,7 +249503,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; @@ -179354,7 +249512,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; @@ -179370,55 +249528,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:*/ { @@ -179428,9 +249586,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); @@ -179447,7 +249605,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; } @@ -179515,7 +249673,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; @@ -179527,7 +249685,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); @@ -179549,16 +249707,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 @@ -179591,44 +249749,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]; @@ -179637,18 +249795,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) { @@ -179658,7 +249816,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; @@ -179671,8 +249829,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 @@ -179694,60 +249852,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:*/ { @@ -179757,7 +249915,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:*/ { @@ -179770,7 +249928,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; @@ -179781,7 +249939,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); @@ -179885,36 +250043,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; @@ -179932,7 +250090,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); @@ -179957,15 +250115,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 @@ -179998,64 +250156,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) { @@ -180069,7 +250227,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; @@ -180093,7 +250251,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:*/ { @@ -180121,13 +250279,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; @@ -180144,7 +250302,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:; @@ -180156,15 +250314,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 @@ -180197,64 +250355,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) { @@ -180268,7 +250426,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; @@ -180292,7 +250450,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:*/ { @@ -180320,13 +250478,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; @@ -180343,7 +250501,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:; @@ -180355,21 +250513,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; @@ -180393,7 +250551,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:*/ { @@ -180421,13 +250579,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; @@ -180444,7 +250602,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:; @@ -180455,12 +250613,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; @@ -180471,12 +250629,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; @@ -180488,15 +250646,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 @@ -180522,16 +250680,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -180548,18 +250706,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; { @@ -180573,7 +250731,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); @@ -180616,7 +250774,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; @@ -180638,7 +250796,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:; @@ -180651,19 +250809,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; { @@ -180677,7 +250835,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; @@ -180703,14 +250861,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 @@ -180743,44 +250901,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]; @@ -180789,18 +250947,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) { @@ -180810,7 +250968,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; @@ -180819,7 +250977,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; @@ -180835,55 +250993,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:*/ { @@ -180893,9 +251051,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); @@ -180912,7 +251070,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; } @@ -180980,7 +251138,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; @@ -180992,7 +251150,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); @@ -181014,16 +251172,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 @@ -181056,44 +251214,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]; @@ -181102,18 +251260,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) { @@ -181123,7 +251281,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; @@ -181136,8 +251294,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 @@ -181159,60 +251317,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:*/ { @@ -181222,7 +251380,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:*/ { @@ -181235,7 +251393,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; @@ -181246,7 +251404,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); @@ -181350,36 +251508,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; @@ -181397,7 +251555,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); @@ -181422,15 +251580,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 @@ -181463,64 +251621,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) { @@ -181534,7 +251692,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; @@ -181558,7 +251716,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:*/ { @@ -181586,13 +251744,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; @@ -181609,7 +251767,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:; @@ -181621,15 +251779,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 @@ -181662,64 +251820,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) { @@ -181733,7 +251891,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; @@ -181757,7 +251915,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:*/ { @@ -181785,13 +251943,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; @@ -181808,7 +251966,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:; @@ -181820,21 +251978,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; @@ -181858,7 +252016,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:*/ { @@ -181886,13 +252044,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; @@ -181909,7 +252067,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:; @@ -181920,12 +252078,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; @@ -181936,12 +252094,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; @@ -181953,15 +252111,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 @@ -181987,16 +252145,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -182013,18 +252171,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; { @@ -182038,7 +252196,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); @@ -182081,7 +252239,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; @@ -182103,7 +252261,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:; @@ -182116,19 +252274,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; { @@ -182142,7 +252300,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; @@ -182168,14 +252326,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 @@ -182208,44 +252366,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]; @@ -182254,18 +252412,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) { @@ -182275,7 +252433,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; @@ -182284,7 +252442,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; @@ -182300,55 +252458,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:*/ { @@ -182358,9 +252516,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); @@ -182377,7 +252535,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; } @@ -182445,7 +252603,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; @@ -182457,7 +252615,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); @@ -182479,16 +252637,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 @@ -182521,44 +252679,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]; @@ -182567,18 +252725,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) { @@ -182588,7 +252746,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; @@ -182601,8 +252759,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 @@ -182624,60 +252782,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:*/ { @@ -182687,7 +252845,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:*/ { @@ -182700,7 +252858,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; @@ -182711,7 +252869,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); @@ -182815,36 +252973,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; @@ -182862,7 +253020,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); @@ -182887,15 +253045,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 @@ -182928,64 +253086,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) { @@ -182999,7 +253157,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; @@ -183023,7 +253181,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:*/ { @@ -183051,13 +253209,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; @@ -183074,7 +253232,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:; @@ -183086,15 +253244,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 @@ -183127,64 +253285,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) { @@ -183198,7 +253356,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; @@ -183222,7 +253380,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:*/ { @@ -183250,13 +253408,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; @@ -183273,7 +253431,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:; @@ -183285,21 +253443,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; @@ -183323,7 +253481,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:*/ { @@ -183351,13 +253509,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; @@ -183374,7 +253532,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:; @@ -183385,12 +253543,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; @@ -183401,12 +253559,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; @@ -183418,15 +253576,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 @@ -183452,16 +253610,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -183478,18 +253636,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; { @@ -183503,7 +253661,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); @@ -183546,7 +253704,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; @@ -183568,7 +253726,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:; @@ -183581,19 +253739,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; { @@ -183607,7 +253765,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; @@ -183633,14 +253791,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 @@ -183673,44 +253831,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]; @@ -183719,18 +253877,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) { @@ -183740,7 +253898,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; @@ -183749,7 +253907,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; @@ -183765,55 +253923,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:*/ { @@ -183823,9 +253981,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); @@ -183842,7 +254000,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; } @@ -183910,7 +254068,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; @@ -183922,7 +254080,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); @@ -183944,16 +254102,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 @@ -183986,44 +254144,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]; @@ -184032,18 +254190,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) { @@ -184053,7 +254211,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; @@ -184066,8 +254224,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 @@ -184089,60 +254247,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:*/ { @@ -184152,7 +254310,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:*/ { @@ -184165,7 +254323,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; @@ -184176,7 +254334,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); @@ -184280,36 +254438,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; @@ -184327,7 +254485,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); @@ -184352,15 +254510,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 @@ -184393,64 +254551,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) { @@ -184464,7 +254622,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; @@ -184488,7 +254646,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:*/ { @@ -184516,13 +254674,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; @@ -184539,7 +254697,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:; @@ -184551,15 +254709,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 @@ -184592,64 +254750,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) { @@ -184663,7 +254821,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; @@ -184687,7 +254845,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:*/ { @@ -184715,13 +254873,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; @@ -184738,7 +254896,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:; @@ -184750,21 +254908,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; @@ -184788,7 +254946,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:*/ { @@ -184816,13 +254974,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; @@ -184839,7 +254997,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:; @@ -184850,12 +255008,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; @@ -184866,12 +255024,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; @@ -184883,15 +255041,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 @@ -184917,16 +255075,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -184943,18 +255101,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; { @@ -184968,7 +255126,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); @@ -185011,7 +255169,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; @@ -185033,7 +255191,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:; @@ -185046,19 +255204,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; { @@ -185072,7 +255230,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; @@ -185098,29 +255256,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; @@ -185136,66 +255291,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) { @@ -185205,17 +255339,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; @@ -185230,55 +255361,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:*/ { @@ -185288,9 +255395,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); @@ -185307,7 +255414,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; } @@ -185375,7 +255482,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; @@ -185387,13 +255494,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); @@ -185409,31 +255513,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; @@ -185449,66 +255550,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) { @@ -185518,21 +255598,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 @@ -185554,60 +255631,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:*/ { @@ -185617,7 +255670,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:*/ { @@ -185630,9 +255683,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; { @@ -185641,7 +255694,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); @@ -185745,36 +255798,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; @@ -185792,19 +255836,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); @@ -185817,30 +255858,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; @@ -185856,81 +255894,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 @@ -185953,7 +255967,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:*/ { @@ -185981,13 +255995,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; @@ -186004,7 +256018,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:; @@ -186016,30 +256030,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; @@ -186055,81 +256066,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 @@ -186152,7 +256139,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:*/ { @@ -186180,13 +256167,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; @@ -186203,7 +256190,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:; @@ -186215,22 +256202,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 @@ -186253,7 +256240,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:*/ { @@ -186281,13 +256268,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; @@ -186304,7 +256291,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:; @@ -186315,12 +256302,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; @@ -186331,12 +256318,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; @@ -186348,15 +256335,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 @@ -186382,16 +256369,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -186408,18 +256395,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; { @@ -186433,7 +256420,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); @@ -186476,7 +256463,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; @@ -186498,7 +256485,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:; @@ -186511,19 +256498,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; { @@ -186537,7 +256524,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; @@ -186563,29 +256550,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; @@ -186601,86 +256586,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; @@ -186695,55 +256673,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:*/ { @@ -186753,9 +256707,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); @@ -186772,7 +256726,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; } @@ -186840,7 +256794,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; @@ -186852,13 +256806,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); @@ -186874,31 +256825,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; @@ -186914,90 +256863,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 @@ -187019,60 +256961,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:*/ { @@ -187082,7 +257000,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:*/ { @@ -187095,9 +257013,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; { @@ -187106,7 +257024,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); @@ -187210,36 +257128,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; @@ -187257,19 +257166,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); @@ -187282,30 +257188,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; @@ -187321,81 +257224,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 @@ -187418,7 +257297,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:*/ { @@ -187446,13 +257325,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; @@ -187469,7 +257348,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:; @@ -187481,30 +257360,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; @@ -187520,81 +257396,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 @@ -187617,7 +257469,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:*/ { @@ -187645,13 +257497,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; @@ -187668,7 +257520,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:; @@ -187680,22 +257532,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 @@ -187718,7 +257570,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:*/ { @@ -187746,13 +257598,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; @@ -187769,7 +257621,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:; @@ -187780,12 +257632,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; @@ -187796,12 +257648,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; @@ -187813,15 +257665,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 @@ -187847,16 +257699,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -187873,18 +257725,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; { @@ -187898,7 +257750,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); @@ -187941,7 +257793,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; @@ -187963,7 +257815,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:; @@ -187976,19 +257828,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; { @@ -188002,7 +257854,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; @@ -188028,24 +257880,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 @@ -188066,77 +257918,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; @@ -188144,8 +258005,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; @@ -188160,55 +258021,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:*/ { @@ -188218,9 +258071,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); @@ -188237,7 +258090,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; } @@ -188305,7 +258158,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; @@ -188317,10 +258170,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); @@ -188339,26 +258191,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 @@ -188379,77 +258231,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; @@ -188458,11 +258319,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 @@ -188484,60 +258345,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:*/ { @@ -188547,7 +258400,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:*/ { @@ -188560,9 +258413,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; { @@ -188571,7 +258424,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); @@ -188675,36 +258528,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; @@ -188722,10 +258572,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); @@ -188734,7 +258583,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); @@ -188747,22 +258596,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; @@ -188770,7 +258618,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; @@ -188786,66 +258634,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) { @@ -188854,13 +258695,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 @@ -188883,7 +258723,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:*/ { @@ -188911,13 +258751,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; @@ -188934,7 +258774,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:; @@ -188946,22 +258786,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; @@ -188969,7 +258808,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; @@ -188985,66 +258824,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) { @@ -189053,13 +258885,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 @@ -189082,7 +258913,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:*/ { @@ -189110,13 +258941,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; @@ -189133,7 +258964,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:; @@ -189145,22 +258976,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 @@ -189183,7 +259014,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:*/ { @@ -189211,13 +259042,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; @@ -189234,7 +259065,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:; @@ -189245,12 +259076,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; @@ -189261,12 +259092,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; @@ -189278,15 +259109,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 @@ -189312,16 +259143,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -189338,18 +259169,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; { @@ -189363,7 +259194,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); @@ -189406,7 +259237,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; @@ -189428,7 +259259,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:; @@ -189441,19 +259272,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; { @@ -189467,7 +259298,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; @@ -189493,24 +259324,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 @@ -189531,77 +259362,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; @@ -189609,8 +259449,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; @@ -189625,55 +259465,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:*/ { @@ -189683,9 +259515,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); @@ -189702,7 +259534,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; } @@ -189770,7 +259602,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; @@ -189782,10 +259614,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); @@ -189804,26 +259635,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 @@ -189844,77 +259675,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; @@ -189923,11 +259763,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 @@ -189949,60 +259789,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:*/ { @@ -190012,7 +259844,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:*/ { @@ -190025,9 +259857,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; { @@ -190036,7 +259868,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); @@ -190140,36 +259972,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; @@ -190187,10 +260016,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); @@ -190199,7 +260027,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); @@ -190212,22 +260040,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; @@ -190235,7 +260062,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; @@ -190251,66 +260078,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) { @@ -190319,13 +260139,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 @@ -190348,7 +260167,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:*/ { @@ -190376,13 +260195,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; @@ -190399,7 +260218,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:; @@ -190411,22 +260230,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; @@ -190434,7 +260252,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; @@ -190450,66 +260268,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) { @@ -190518,13 +260329,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 @@ -190547,7 +260357,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:*/ { @@ -190575,13 +260385,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; @@ -190598,7 +260408,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:; @@ -190610,22 +260420,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 @@ -190648,7 +260458,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:*/ { @@ -190676,13 +260486,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; @@ -190699,7 +260509,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:; @@ -190710,12 +260520,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; @@ -190726,12 +260536,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; @@ -190743,15 +260553,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 @@ -190777,16 +260587,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -190803,18 +260613,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; { @@ -190828,7 +260638,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); @@ -190871,7 +260681,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; @@ -190893,7 +260703,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:; @@ -190906,19 +260716,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; { @@ -190932,7 +260742,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; @@ -190958,29 +260768,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; @@ -190996,77 +260808,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; @@ -191074,8 +260923,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; @@ -191090,55 +260940,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:*/ { @@ -191148,9 +260990,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); @@ -191167,7 +261009,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; } @@ -191235,7 +261077,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; @@ -191247,10 +261089,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); @@ -191263,37 +261104,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; @@ -191309,77 +261153,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; @@ -191388,11 +261269,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 @@ -191409,65 +261291,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:*/ { @@ -191477,7 +261352,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:*/ { @@ -191490,9 +261365,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; { @@ -191501,7 +261381,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); @@ -191605,46 +261485,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; @@ -191652,10 +261551,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); @@ -191664,7 +261563,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); @@ -191677,22 +261577,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; @@ -191700,7 +261599,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; @@ -191716,66 +261615,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) { @@ -191784,19 +261676,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; @@ -191813,7 +261707,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:*/ { @@ -191841,34 +261735,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; @@ -191876,22 +261783,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; @@ -191899,7 +261805,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; @@ -191915,66 +261821,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) { @@ -191983,19 +261882,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; @@ -192012,7 +261913,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:*/ { @@ -192040,34 +261941,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; @@ -192075,28 +261989,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; @@ -192113,7 +262030,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:*/ { @@ -192141,46 +262058,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; @@ -192191,12 +262121,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; @@ -192208,15 +262138,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 @@ -192242,16 +262172,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -192268,18 +262198,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; { @@ -192293,7 +262223,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); @@ -192336,7 +262266,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; @@ -192358,7 +262288,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:; @@ -192371,19 +262301,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; { @@ -192397,7 +262327,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; @@ -192423,29 +262353,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; @@ -192461,86 +262392,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; @@ -192555,55 +262503,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:*/ { @@ -192613,9 +262561,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); @@ -192632,7 +262580,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; } @@ -192700,7 +262648,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; @@ -192712,13 +262660,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); @@ -192734,31 +262682,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; @@ -192774,90 +262723,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 @@ -192879,60 +262845,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:*/ { @@ -192942,7 +262908,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:*/ { @@ -192955,9 +262921,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; { @@ -192966,7 +262932,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); @@ -193070,36 +263036,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; @@ -193117,19 +263083,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); @@ -193142,25 +263108,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 @@ -193181,66 +263147,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) { @@ -193254,8 +263220,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 @@ -193278,7 +263244,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:*/ { @@ -193306,13 +263272,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; @@ -193329,7 +263295,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:; @@ -193341,25 +263307,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 @@ -193380,66 +263346,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) { @@ -193453,8 +263419,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 @@ -193477,7 +263443,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:*/ { @@ -193505,13 +263471,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; @@ -193528,7 +263494,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:; @@ -193540,22 +263506,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 @@ -193578,7 +263544,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:*/ { @@ -193606,13 +263572,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; @@ -193629,7 +263595,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:; @@ -193640,12 +263606,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; @@ -193656,12 +263622,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; @@ -193673,15 +263639,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 @@ -193707,16 +263673,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -193733,18 +263699,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; { @@ -193758,7 +263724,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); @@ -193801,7 +263767,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; @@ -193823,7 +263789,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:; @@ -193836,19 +263802,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; { @@ -193862,7 +263828,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; @@ -193888,29 +263854,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; @@ -193926,86 +263890,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; @@ -194020,55 +263977,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:*/ { @@ -194078,9 +264011,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); @@ -194097,7 +264030,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; } @@ -194165,7 +264098,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; @@ -194177,13 +264110,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); @@ -194199,31 +264129,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; @@ -194239,90 +264167,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 @@ -194344,60 +264265,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:*/ { @@ -194407,7 +264304,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:*/ { @@ -194420,9 +264317,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; { @@ -194431,7 +264328,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); @@ -194535,36 +264432,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; @@ -194582,19 +264470,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); @@ -194607,30 +264492,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; @@ -194646,81 +264528,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 @@ -194743,7 +264601,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:*/ { @@ -194771,13 +264629,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; @@ -194794,7 +264652,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:; @@ -194806,30 +264664,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; @@ -194845,81 +264700,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 @@ -194942,7 +264773,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:*/ { @@ -194970,13 +264801,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; @@ -194993,7 +264824,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:; @@ -195005,22 +264836,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 @@ -195043,7 +264874,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:*/ { @@ -195071,13 +264902,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; @@ -195094,7 +264925,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:; @@ -195105,12 +264936,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; @@ -195121,12 +264952,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; @@ -195138,15 +264969,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 @@ -195172,16 +265003,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -195198,18 +265029,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; { @@ -195223,7 +265054,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); @@ -195266,7 +265097,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; @@ -195288,7 +265119,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:; @@ -195301,19 +265132,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; { @@ -195327,7 +265158,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; @@ -195353,29 +265184,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; @@ -195391,86 +265220,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; @@ -195485,55 +265307,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:*/ { @@ -195543,9 +265341,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); @@ -195562,7 +265360,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; } @@ -195630,7 +265428,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; @@ -195642,13 +265440,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); @@ -195664,31 +265459,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; @@ -195704,90 +265497,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 @@ -195809,60 +265595,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:*/ { @@ -195872,7 +265634,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:*/ { @@ -195885,9 +265647,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; { @@ -195896,7 +265658,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); @@ -196000,36 +265762,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; @@ -196047,19 +265800,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); @@ -196072,30 +265822,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; @@ -196111,81 +265858,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 @@ -196208,7 +265931,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:*/ { @@ -196236,13 +265959,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; @@ -196259,7 +265982,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:; @@ -196271,30 +265994,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; @@ -196310,81 +266030,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 @@ -196407,7 +266103,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:*/ { @@ -196435,13 +266131,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; @@ -196458,7 +266154,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:; @@ -196470,22 +266166,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 @@ -196508,7 +266204,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:*/ { @@ -196536,13 +266232,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; @@ -196559,7 +266255,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:; @@ -196570,12 +266266,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; @@ -196586,12 +266282,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; @@ -196603,15 +266299,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 @@ -196637,16 +266333,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -196663,18 +266359,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; { @@ -196688,7 +266384,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); @@ -196731,7 +266427,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; @@ -196753,7 +266449,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:; @@ -196766,19 +266462,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; { @@ -196792,7 +266488,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; @@ -196818,24 +266514,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 @@ -196856,86 +266552,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; @@ -196950,55 +266667,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:*/ { @@ -197008,9 +266701,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); @@ -197027,7 +266720,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; } @@ -197095,7 +266788,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; @@ -197107,13 +266800,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); @@ -197129,26 +266819,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 @@ -197169,90 +266859,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 @@ -197274,60 +266985,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:*/ { @@ -197337,7 +267024,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:*/ { @@ -197350,9 +267037,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; { @@ -197361,7 +267048,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); @@ -197465,36 +267152,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; @@ -197512,19 +267190,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); @@ -197537,30 +267212,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; @@ -197576,81 +267248,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 @@ -197673,7 +267321,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:*/ { @@ -197701,13 +267349,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; @@ -197724,7 +267372,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:; @@ -197736,30 +267384,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; @@ -197775,81 +267420,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 @@ -197872,7 +267493,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:*/ { @@ -197900,13 +267521,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; @@ -197923,7 +267544,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:; @@ -197935,22 +267556,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 @@ -197973,7 +267594,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:*/ { @@ -198001,13 +267622,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; @@ -198024,7 +267645,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:; @@ -198035,12 +267656,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; @@ -198051,12 +267672,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; @@ -198068,15 +267689,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 @@ -198102,16 +267723,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -198128,18 +267749,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; { @@ -198153,7 +267774,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); @@ -198196,7 +267817,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; @@ -198218,7 +267839,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:; @@ -198231,19 +267852,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; { @@ -198257,7 +267878,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; @@ -198283,29 +267904,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; @@ -198321,86 +267941,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; @@ -198415,55 +268036,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:*/ { @@ -198473,9 +268078,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); @@ -198492,7 +268097,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; } @@ -198560,7 +268165,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; @@ -198572,13 +268177,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); @@ -198594,31 +268197,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; @@ -198634,90 +268236,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 @@ -198739,60 +268342,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:*/ { @@ -198802,7 +268389,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:*/ { @@ -198815,9 +268402,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; { @@ -198826,7 +268413,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); @@ -198930,36 +268517,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; @@ -198977,19 +268558,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); @@ -199002,30 +268581,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; @@ -199041,66 +268618,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) { @@ -199108,14 +268671,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 @@ -199138,7 +268699,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:*/ { @@ -199166,13 +268727,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; @@ -199189,7 +268750,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:; @@ -199201,30 +268762,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; @@ -199240,66 +268799,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) { @@ -199307,14 +268852,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 @@ -199337,7 +268880,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:*/ { @@ -199365,13 +268908,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; @@ -199388,7 +268931,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:; @@ -199400,22 +268943,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 @@ -199438,7 +268981,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:*/ { @@ -199466,13 +269009,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; @@ -199489,7 +269032,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:; @@ -199500,12 +269043,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; @@ -199516,12 +269059,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; @@ -199533,15 +269076,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 @@ -199567,16 +269110,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -199593,18 +269136,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; { @@ -199618,7 +269161,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); @@ -199661,7 +269204,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; @@ -199683,7 +269226,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:; @@ -199696,19 +269239,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; { @@ -199722,7 +269265,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; @@ -199748,29 +269291,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; @@ -199786,66 +269326,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) { @@ -199855,17 +269374,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; @@ -199880,55 +269396,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:*/ { @@ -199938,9 +269430,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); @@ -199957,7 +269449,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; } @@ -200025,7 +269517,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; @@ -200037,13 +269529,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); @@ -200059,31 +269548,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; @@ -200099,66 +269585,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) { @@ -200168,21 +269633,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 @@ -200204,60 +269666,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:*/ { @@ -200267,7 +269705,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:*/ { @@ -200280,9 +269718,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; { @@ -200291,7 +269729,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); @@ -200395,36 +269833,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; @@ -200442,19 +269871,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); @@ -200467,30 +269893,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; @@ -200506,81 +269929,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 @@ -200603,7 +270002,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:*/ { @@ -200631,13 +270030,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; @@ -200654,7 +270053,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:; @@ -200666,30 +270065,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; @@ -200705,81 +270101,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 @@ -200802,7 +270174,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:*/ { @@ -200830,13 +270202,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; @@ -200853,7 +270225,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:; @@ -200865,22 +270237,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 @@ -200903,7 +270275,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:*/ { @@ -200931,13 +270303,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; @@ -200954,7 +270326,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:; @@ -200965,12 +270337,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; @@ -200981,12 +270353,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; @@ -200998,15 +270370,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 @@ -201032,16 +270404,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -201058,18 +270430,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; { @@ -201083,7 +270455,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); @@ -201126,7 +270498,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; @@ -201148,7 +270520,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:; @@ -201161,19 +270533,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; { @@ -201187,7 +270559,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; @@ -201213,29 +270585,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; @@ -201251,66 +270620,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) { @@ -201320,17 +270668,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; @@ -201345,55 +270690,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:*/ { @@ -201403,9 +270724,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); @@ -201422,7 +270743,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; } @@ -201490,7 +270811,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; @@ -201502,13 +270823,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); @@ -201524,31 +270842,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; @@ -201564,66 +270879,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) { @@ -201633,21 +270927,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 @@ -201669,60 +270960,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:*/ { @@ -201732,7 +270999,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:*/ { @@ -201745,9 +271012,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; { @@ -201756,7 +271023,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); @@ -201860,36 +271127,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; @@ -201907,19 +271165,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); @@ -201932,30 +271187,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; @@ -201971,81 +271223,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 @@ -202068,7 +271296,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:*/ { @@ -202096,13 +271324,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; @@ -202119,7 +271347,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:; @@ -202131,30 +271359,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; @@ -202170,81 +271395,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 @@ -202267,7 +271468,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:*/ { @@ -202295,13 +271496,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; @@ -202318,7 +271519,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:; @@ -202330,22 +271531,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 @@ -202368,7 +271569,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:*/ { @@ -202396,13 +271597,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; @@ -202419,7 +271620,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:; @@ -202430,12 +271631,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; @@ -202446,12 +271647,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; @@ -202463,15 +271664,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 @@ -202497,16 +271698,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -202523,18 +271724,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; { @@ -202548,7 +271749,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); @@ -202591,7 +271792,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; @@ -202613,7 +271814,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:; @@ -202626,19 +271827,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; { @@ -202652,7 +271853,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; @@ -202678,24 +271879,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 @@ -202716,86 +271917,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; @@ -202810,55 +272032,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:*/ { @@ -202868,9 +272066,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); @@ -202887,7 +272085,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; } @@ -202955,7 +272153,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; @@ -202967,13 +272165,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); @@ -202989,26 +272184,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 @@ -203029,90 +272224,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 @@ -203134,60 +272350,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:*/ { @@ -203197,7 +272389,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:*/ { @@ -203210,9 +272402,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; { @@ -203221,7 +272413,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); @@ -203325,36 +272517,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; @@ -203372,19 +272555,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); @@ -203397,30 +272577,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; @@ -203436,81 +272613,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 @@ -203533,7 +272686,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:*/ { @@ -203561,13 +272714,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; @@ -203584,7 +272737,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:; @@ -203596,30 +272749,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; @@ -203635,81 +272785,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 @@ -203732,7 +272858,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:*/ { @@ -203760,13 +272886,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; @@ -203783,7 +272909,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:; @@ -203795,22 +272921,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 @@ -203833,7 +272959,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:*/ { @@ -203861,13 +272987,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; @@ -203884,7 +273010,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:; @@ -203895,12 +273021,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; @@ -203911,12 +273037,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; @@ -203928,15 +273054,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 @@ -203962,16 +273088,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -203988,18 +273114,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; { @@ -204013,7 +273139,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); @@ -204056,7 +273182,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; @@ -204078,7 +273204,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:; @@ -204091,19 +273217,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; { @@ -204117,7 +273243,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; @@ -204143,30 +273269,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; @@ -204182,82 +273305,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) { @@ -204268,17 +273370,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; @@ -204293,55 +273392,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:*/ { @@ -204351,9 +273426,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); @@ -204370,7 +273445,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; } @@ -204438,7 +273513,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; @@ -204450,13 +273525,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); @@ -204472,32 +273544,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; @@ -204513,82 +273582,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) { @@ -204599,21 +273647,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 @@ -204635,60 +273680,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:*/ { @@ -204698,7 +273719,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:*/ { @@ -204711,9 +273732,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; { @@ -204722,7 +273743,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); @@ -204826,36 +273847,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; @@ -204873,19 +273885,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); @@ -204898,30 +273907,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; @@ -204937,81 +273943,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 @@ -205034,7 +274016,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:*/ { @@ -205062,13 +274044,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; @@ -205085,7 +274067,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:; @@ -205097,30 +274079,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; @@ -205136,81 +274115,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 @@ -205233,7 +274188,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:*/ { @@ -205261,13 +274216,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; @@ -205284,7 +274239,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:; @@ -205296,22 +274251,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 @@ -205334,7 +274289,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:*/ { @@ -205362,13 +274317,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; @@ -205385,7 +274340,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:; @@ -205396,12 +274351,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; @@ -205412,12 +274367,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; @@ -205429,15 +274384,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 @@ -205463,16 +274418,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -205489,18 +274444,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; { @@ -205514,7 +274469,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); @@ -205557,7 +274512,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; @@ -205579,7 +274534,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:; @@ -205592,19 +274547,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; { @@ -205618,7 +274573,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; @@ -205644,30 +274599,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; @@ -205683,103 +274634,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; @@ -205794,55 +274704,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:*/ { @@ -205852,9 +274738,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); @@ -205871,7 +274757,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; } @@ -205939,7 +274825,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; @@ -205951,13 +274837,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); @@ -205973,32 +274856,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; @@ -206014,107 +274893,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 @@ -206136,60 +274974,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:*/ { @@ -206199,7 +275013,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:*/ { @@ -206212,9 +275026,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; { @@ -206223,7 +275037,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); @@ -206327,36 +275141,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; @@ -206374,19 +275179,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); @@ -206399,30 +275201,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; @@ -206438,81 +275237,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 @@ -206535,7 +275310,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:*/ { @@ -206563,13 +275338,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; @@ -206586,7 +275361,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:; @@ -206598,30 +275373,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; @@ -206637,81 +275409,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 @@ -206734,7 +275482,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:*/ { @@ -206762,13 +275510,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; @@ -206785,7 +275533,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:; @@ -206797,22 +275545,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 @@ -206835,7 +275583,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:*/ { @@ -206863,13 +275611,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; @@ -206886,7 +275634,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:; @@ -206897,12 +275645,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; @@ -206913,12 +275661,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; @@ -206930,15 +275678,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 @@ -206964,16 +275712,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -206990,18 +275738,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; { @@ -207015,7 +275763,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); @@ -207058,7 +275806,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; @@ -207080,7 +275828,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:; @@ -207093,19 +275841,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; { @@ -207119,7 +275867,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; @@ -207145,30 +275893,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; @@ -207184,103 +275931,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; @@ -207295,55 +276040,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:*/ { @@ -207353,9 +276082,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); @@ -207372,7 +276101,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; } @@ -207440,7 +276169,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; @@ -207452,13 +276181,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); @@ -207474,32 +276201,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; @@ -207515,107 +276241,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 @@ -207637,60 +276361,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:*/ { @@ -207700,7 +276408,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:*/ { @@ -207713,9 +276421,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; { @@ -207724,7 +276432,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); @@ -207828,36 +276536,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; @@ -207875,19 +276577,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); @@ -207900,30 +276600,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; @@ -207939,66 +276637,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) { @@ -208006,14 +276690,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 @@ -208036,7 +276718,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:*/ { @@ -208064,13 +276746,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; @@ -208087,7 +276769,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:; @@ -208099,30 +276781,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; @@ -208138,66 +276818,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) { @@ -208205,14 +276871,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 @@ -208235,7 +276899,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:*/ { @@ -208263,13 +276927,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; @@ -208286,7 +276950,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:; @@ -208298,22 +276962,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 @@ -208336,7 +277000,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:*/ { @@ -208364,13 +277028,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; @@ -208387,7 +277051,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:; @@ -208398,12 +277062,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; @@ -208414,12 +277078,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; @@ -208431,15 +277095,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 @@ -208465,16 +277129,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -208491,18 +277155,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; { @@ -208516,7 +277180,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); @@ -208559,7 +277223,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; @@ -208581,7 +277245,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:; @@ -208594,19 +277258,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; { @@ -208620,7 +277284,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; @@ -208646,29 +277310,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; @@ -208684,86 +277346,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; @@ -208778,55 +277433,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:*/ { @@ -208836,9 +277467,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); @@ -208855,7 +277486,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; } @@ -208923,7 +277554,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; @@ -208935,13 +277566,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); @@ -208957,31 +277585,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; @@ -208997,90 +277623,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 @@ -209102,60 +277721,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:*/ { @@ -209165,7 +277760,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:*/ { @@ -209178,9 +277773,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; { @@ -209189,7 +277784,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); @@ -209293,36 +277888,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; @@ -209340,19 +277926,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); @@ -209365,30 +277948,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; @@ -209404,81 +277984,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 @@ -209501,7 +278057,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:*/ { @@ -209529,13 +278085,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; @@ -209552,7 +278108,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:; @@ -209564,30 +278120,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; @@ -209603,81 +278156,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 @@ -209700,7 +278229,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:*/ { @@ -209728,13 +278257,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; @@ -209751,7 +278280,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:; @@ -209763,22 +278292,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 @@ -209801,7 +278330,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:*/ { @@ -209829,13 +278358,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; @@ -209852,7 +278381,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:; @@ -209863,12 +278392,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; @@ -209879,12 +278408,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; @@ -209896,15 +278425,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 @@ -209930,16 +278459,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -209956,18 +278485,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; { @@ -209981,7 +278510,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); @@ -210024,7 +278553,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; @@ -210046,7 +278575,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:; @@ -210059,19 +278588,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; { @@ -210085,7 +278614,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; @@ -210111,29 +278640,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; @@ -210149,66 +278676,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) { @@ -210218,17 +278731,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; @@ -210243,55 +278754,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:*/ { @@ -210301,9 +278796,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); @@ -210320,7 +278815,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; } @@ -210388,7 +278883,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; @@ -210400,13 +278895,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); @@ -210422,31 +278915,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; @@ -210462,66 +278953,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) { @@ -210531,21 +279008,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 @@ -210567,60 +279042,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:*/ { @@ -210630,7 +279089,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:*/ { @@ -210643,9 +279102,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; { @@ -210654,7 +279113,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); @@ -210758,36 +279217,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; @@ -210805,19 +279258,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); @@ -210830,30 +279281,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; @@ -210869,66 +279318,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) { @@ -210936,14 +279371,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 @@ -210966,7 +279399,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:*/ { @@ -210994,13 +279427,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; @@ -211017,7 +279450,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:; @@ -211029,30 +279462,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; @@ -211068,66 +279499,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) { @@ -211135,14 +279552,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 @@ -211165,7 +279580,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:*/ { @@ -211193,13 +279608,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; @@ -211216,7 +279631,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:; @@ -211228,22 +279643,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 @@ -211266,7 +279681,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:*/ { @@ -211294,13 +279709,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; @@ -211317,7 +279732,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:; @@ -211328,12 +279743,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; @@ -211344,12 +279759,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; @@ -211361,15 +279776,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 @@ -211395,16 +279810,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -211421,18 +279836,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; { @@ -211446,7 +279861,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); @@ -211489,7 +279904,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; @@ -211511,7 +279926,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:; @@ -211524,19 +279939,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; { @@ -211550,7 +279965,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; @@ -211576,29 +279991,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; @@ -211614,86 +280028,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; @@ -211708,55 +280125,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:*/ { @@ -211766,9 +280167,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); @@ -211785,7 +280186,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; } @@ -211853,7 +280254,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; @@ -211865,13 +280266,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); @@ -211881,37 +280280,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; @@ -211927,90 +280327,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 @@ -212027,65 +280430,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:*/ { @@ -212095,7 +280484,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:*/ { @@ -212108,9 +280497,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; { @@ -212119,7 +280518,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); @@ -212223,46 +280622,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; @@ -212270,19 +280696,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); @@ -212295,30 +280723,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; @@ -212334,66 +280760,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) { @@ -212401,20 +280813,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; @@ -212431,7 +280846,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:*/ { @@ -212459,34 +280874,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; @@ -212494,30 +280929,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; @@ -212533,66 +280966,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) { @@ -212600,20 +281019,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; @@ -212630,7 +281052,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:*/ { @@ -212658,34 +281080,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; @@ -212693,28 +281135,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; @@ -212731,7 +281178,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:*/ { @@ -212759,46 +281206,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; @@ -212809,12 +281276,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; @@ -212826,15 +281293,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 @@ -212860,16 +281327,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -212886,18 +281353,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; { @@ -212911,7 +281378,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); @@ -212954,7 +281421,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; @@ -212976,7 +281443,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:; @@ -212989,19 +281456,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; { @@ -213015,7 +281482,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; @@ -213041,29 +281508,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; @@ -213079,86 +281547,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; @@ -213173,55 +281676,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:*/ { @@ -213231,9 +281710,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); @@ -213250,7 +281729,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; } @@ -213318,7 +281797,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; @@ -213330,13 +281809,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); @@ -213352,31 +281828,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; @@ -213392,90 +281869,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 @@ -213497,60 +282009,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:*/ { @@ -213560,7 +282048,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:*/ { @@ -213573,9 +282061,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; { @@ -213584,7 +282072,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); @@ -213688,36 +282176,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; @@ -213735,19 +282214,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); @@ -213760,30 +282236,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; @@ -213799,81 +282272,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 @@ -213896,7 +282345,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:*/ { @@ -213924,13 +282373,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; @@ -213947,7 +282396,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:; @@ -213959,30 +282408,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; @@ -213998,81 +282444,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 @@ -214095,7 +282517,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:*/ { @@ -214123,13 +282545,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; @@ -214146,7 +282568,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:; @@ -214158,22 +282580,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 @@ -214196,7 +282618,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:*/ { @@ -214224,13 +282646,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; @@ -214247,7 +282669,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:; @@ -214258,12 +282680,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; @@ -214274,12 +282696,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; @@ -214291,15 +282713,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 @@ -214325,16 +282747,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -214351,18 +282773,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; { @@ -214376,7 +282798,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); @@ -214419,7 +282841,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; @@ -214441,7 +282863,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:; @@ -214454,19 +282876,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; { @@ -214480,7 +282902,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; @@ -214506,29 +282928,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; @@ -214544,86 +282964,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; @@ -214638,55 +283051,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:*/ { @@ -214696,9 +283085,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); @@ -214715,7 +283104,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; } @@ -214783,7 +283172,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; @@ -214795,13 +283184,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); @@ -214817,31 +283203,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; @@ -214857,90 +283241,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 @@ -214962,60 +283339,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:*/ { @@ -215025,7 +283378,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:*/ { @@ -215038,9 +283391,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; { @@ -215049,7 +283402,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); @@ -215153,36 +283506,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; @@ -215200,19 +283544,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); @@ -215225,30 +283566,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; @@ -215264,81 +283602,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 @@ -215361,7 +283675,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:*/ { @@ -215389,13 +283703,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; @@ -215412,7 +283726,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:; @@ -215424,30 +283738,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; @@ -215463,81 +283774,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 @@ -215560,7 +283847,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:*/ { @@ -215588,13 +283875,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; @@ -215611,7 +283898,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:; @@ -215623,22 +283910,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 @@ -215661,7 +283948,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:*/ { @@ -215689,13 +283976,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; @@ -215712,7 +283999,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:; @@ -215723,12 +284010,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; @@ -215739,12 +284026,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; @@ -215756,15 +284043,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 @@ -215790,16 +284077,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -215816,18 +284103,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; { @@ -215841,7 +284128,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); @@ -215884,7 +284171,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; @@ -215906,7 +284193,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:; @@ -215919,19 +284206,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; { @@ -215945,7 +284232,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; @@ -215971,24 +284258,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 @@ -216009,77 +284296,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; @@ -216087,8 +284383,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; @@ -216103,55 +284399,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:*/ { @@ -216161,9 +284449,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); @@ -216180,7 +284468,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; } @@ -216248,7 +284536,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; @@ -216260,10 +284548,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); @@ -216282,26 +284569,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 @@ -216322,77 +284609,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; @@ -216401,11 +284697,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 @@ -216427,60 +284723,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:*/ { @@ -216490,7 +284778,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:*/ { @@ -216503,9 +284791,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; { @@ -216514,7 +284802,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); @@ -216618,36 +284906,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; @@ -216665,10 +284950,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); @@ -216677,7 +284961,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); @@ -216690,22 +284974,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; @@ -216713,7 +284996,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; @@ -216729,66 +285012,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) { @@ -216797,13 +285073,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 @@ -216826,7 +285101,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:*/ { @@ -216854,13 +285129,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; @@ -216877,7 +285152,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:; @@ -216889,22 +285164,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; @@ -216912,7 +285186,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; @@ -216928,66 +285202,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) { @@ -216996,13 +285263,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 @@ -217025,7 +285291,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:*/ { @@ -217053,13 +285319,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; @@ -217076,7 +285342,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:; @@ -217088,22 +285354,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 @@ -217126,7 +285392,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:*/ { @@ -217154,13 +285420,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; @@ -217177,7 +285443,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:; @@ -217188,12 +285454,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; @@ -217204,12 +285470,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; @@ -217221,15 +285487,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 @@ -217255,16 +285521,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -217281,18 +285547,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; { @@ -217306,7 +285572,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); @@ -217349,7 +285615,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; @@ -217371,7 +285637,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:; @@ -217384,19 +285650,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; { @@ -217410,7 +285676,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; @@ -217436,29 +285702,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; @@ -217474,86 +285739,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; @@ -217568,55 +285834,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:*/ { @@ -217626,9 +285876,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); @@ -217645,7 +285895,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; } @@ -217713,7 +285963,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; @@ -217725,13 +285975,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); @@ -217747,31 +285995,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; @@ -217787,90 +286034,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 @@ -217892,60 +286140,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:*/ { @@ -217955,7 +286187,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:*/ { @@ -217968,9 +286200,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; { @@ -217979,7 +286211,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); @@ -218083,36 +286315,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; @@ -218130,19 +286356,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); @@ -218155,30 +286379,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; @@ -218194,66 +286416,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) { @@ -218261,14 +286469,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 @@ -218291,7 +286497,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:*/ { @@ -218319,13 +286525,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; @@ -218342,7 +286548,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:; @@ -218354,30 +286560,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; @@ -218393,66 +286597,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) { @@ -218460,14 +286650,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 @@ -218490,7 +286678,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:*/ { @@ -218518,13 +286706,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; @@ -218541,7 +286729,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:; @@ -218553,22 +286741,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 @@ -218591,7 +286779,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:*/ { @@ -218619,13 +286807,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; @@ -218642,7 +286830,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:; @@ -218653,12 +286841,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; @@ -218669,12 +286857,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; @@ -218686,15 +286874,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 @@ -218720,16 +286908,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -218746,18 +286934,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; { @@ -218771,7 +286959,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); @@ -218814,7 +287002,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; @@ -218836,7 +287024,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:; @@ -218849,19 +287037,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; { @@ -218875,7 +287063,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; @@ -218901,29 +287089,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; @@ -218939,86 +287125,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; @@ -219033,55 +287212,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:*/ { @@ -219091,9 +287246,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); @@ -219110,7 +287265,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; } @@ -219178,7 +287333,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; @@ -219190,13 +287345,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); @@ -219212,31 +287364,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; @@ -219252,90 +287402,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 @@ -219357,60 +287500,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:*/ { @@ -219420,7 +287539,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:*/ { @@ -219433,9 +287552,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; { @@ -219444,7 +287563,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); @@ -219548,36 +287667,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; @@ -219595,19 +287705,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); @@ -219620,30 +287727,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; @@ -219659,81 +287763,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 @@ -219756,7 +287836,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:*/ { @@ -219784,13 +287864,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; @@ -219807,7 +287887,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:; @@ -219819,30 +287899,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; @@ -219858,81 +287935,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 @@ -219955,7 +288008,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:*/ { @@ -219983,13 +288036,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; @@ -220006,7 +288059,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:; @@ -220018,22 +288071,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 @@ -220056,7 +288109,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:*/ { @@ -220084,13 +288137,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; @@ -220107,7 +288160,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:; @@ -220118,12 +288171,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; @@ -220134,12 +288187,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; @@ -220151,15 +288204,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 @@ -220185,16 +288238,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -220211,18 +288264,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; { @@ -220236,7 +288289,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); @@ -220279,7 +288332,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; @@ -220301,7 +288354,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:; @@ -220314,19 +288367,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; { @@ -220340,7 +288393,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; @@ -220366,29 +288419,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; @@ -220404,86 +288458,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; @@ -220498,55 +288575,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:*/ { @@ -220556,9 +288625,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); @@ -220575,7 +288644,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; } @@ -220643,7 +288712,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; @@ -220655,13 +288724,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); @@ -220677,31 +288745,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; @@ -220717,90 +288786,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 @@ -220822,60 +288914,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:*/ { @@ -220885,7 +288969,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:*/ { @@ -220898,9 +288982,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; { @@ -220909,7 +288993,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); @@ -221013,36 +289097,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; @@ -221060,19 +289141,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); @@ -221085,30 +289165,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; @@ -221124,66 +289203,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) { @@ -221192,13 +289264,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 @@ -221221,7 +289292,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:*/ { @@ -221249,13 +289320,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; @@ -221272,7 +289343,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:; @@ -221284,30 +289355,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; @@ -221323,66 +289393,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) { @@ -221391,13 +289454,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 @@ -221420,7 +289482,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:*/ { @@ -221448,13 +289510,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; @@ -221471,7 +289533,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:; @@ -221483,22 +289545,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 @@ -221521,7 +289583,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:*/ { @@ -221549,13 +289611,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; @@ -221572,7 +289634,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:; @@ -221583,12 +289645,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; @@ -221599,12 +289661,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; @@ -221616,15 +289678,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 @@ -221650,16 +289712,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -221676,18 +289738,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; { @@ -221701,7 +289763,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); @@ -221744,7 +289806,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; @@ -221766,7 +289828,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:; @@ -221779,19 +289841,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; { @@ -221805,7 +289867,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; @@ -221831,29 +289893,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; @@ -221869,86 +289929,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; @@ -221963,55 +290016,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:*/ { @@ -222021,9 +290050,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); @@ -222040,7 +290069,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; } @@ -222108,7 +290137,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; @@ -222120,13 +290149,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); @@ -222142,31 +290168,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; @@ -222182,90 +290206,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 @@ -222287,60 +290304,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:*/ { @@ -222350,7 +290343,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:*/ { @@ -222363,9 +290356,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; { @@ -222374,7 +290367,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); @@ -222478,36 +290471,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; @@ -222525,19 +290509,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); @@ -222550,30 +290531,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; @@ -222589,81 +290567,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 @@ -222686,7 +290640,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:*/ { @@ -222714,13 +290668,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; @@ -222737,7 +290691,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:; @@ -222749,30 +290703,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; @@ -222788,81 +290739,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 @@ -222885,7 +290812,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:*/ { @@ -222913,13 +290840,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; @@ -222936,7 +290863,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:; @@ -222948,22 +290875,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 @@ -222986,7 +290913,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:*/ { @@ -223014,13 +290941,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; @@ -223037,7 +290964,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:; @@ -223048,12 +290975,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; @@ -223064,12 +290991,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; @@ -223081,15 +291008,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 @@ -223115,16 +291042,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -223141,18 +291068,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; { @@ -223166,7 +291093,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); @@ -223209,7 +291136,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; @@ -223231,7 +291158,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:; @@ -223244,19 +291171,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; { @@ -223270,7 +291197,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; @@ -223296,24 +291223,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 @@ -223334,77 +291261,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; @@ -223412,8 +291348,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; @@ -223428,55 +291365,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:*/ { @@ -223486,9 +291415,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); @@ -223505,7 +291434,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; } @@ -223573,7 +291502,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; @@ -223585,10 +291514,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); @@ -223601,32 +291529,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 @@ -223647,77 +291576,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; @@ -223726,11 +291664,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 @@ -223747,65 +291686,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:*/ { @@ -223815,7 +291747,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:*/ { @@ -223828,9 +291760,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; { @@ -223839,7 +291776,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); @@ -223943,46 +291880,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; @@ -223990,10 +291946,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); @@ -224002,7 +291958,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); @@ -224015,22 +291972,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; @@ -224038,7 +291994,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; @@ -224054,66 +292010,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) { @@ -224122,19 +292071,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; @@ -224151,7 +292102,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:*/ { @@ -224179,34 +292130,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; @@ -224214,22 +292178,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; @@ -224237,7 +292200,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; @@ -224253,66 +292216,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) { @@ -224321,19 +292277,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; @@ -224350,7 +292308,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:*/ { @@ -224378,34 +292336,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; @@ -224413,28 +292384,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; @@ -224451,7 +292425,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:*/ { @@ -224479,46 +292453,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; @@ -224529,12 +292516,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; @@ -224546,15 +292533,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 @@ -224580,16 +292567,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -224606,18 +292593,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; { @@ -224631,7 +292618,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); @@ -224674,7 +292661,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; @@ -224696,7 +292683,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:; @@ -224709,19 +292696,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; { @@ -224735,7 +292722,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; @@ -224761,29 +292748,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; @@ -224799,66 +292783,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) { @@ -224868,17 +292831,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; @@ -224893,55 +292853,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:*/ { @@ -224951,9 +292887,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); @@ -224970,7 +292906,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; } @@ -225038,7 +292974,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; @@ -225050,13 +292986,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); @@ -225072,31 +293005,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; @@ -225112,66 +293042,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) { @@ -225181,21 +293090,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 @@ -225217,60 +293123,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:*/ { @@ -225280,7 +293162,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:*/ { @@ -225293,9 +293175,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; { @@ -225304,7 +293186,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); @@ -225408,36 +293290,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; @@ -225455,19 +293328,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); @@ -225480,30 +293350,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; @@ -225519,81 +293386,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 @@ -225616,7 +293459,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:*/ { @@ -225644,13 +293487,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; @@ -225667,7 +293510,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:; @@ -225679,30 +293522,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; @@ -225718,81 +293558,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 @@ -225815,7 +293631,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:*/ { @@ -225843,13 +293659,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; @@ -225866,7 +293682,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:; @@ -225878,22 +293694,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 @@ -225916,7 +293732,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:*/ { @@ -225944,13 +293760,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; @@ -225967,7 +293783,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:; @@ -225978,12 +293794,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; @@ -225994,12 +293810,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; @@ -226011,15 +293827,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 @@ -226045,16 +293861,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -226071,18 +293887,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; { @@ -226096,7 +293912,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); @@ -226139,7 +293955,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; @@ -226161,7 +293977,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:; @@ -226174,19 +293990,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; { @@ -226200,7 +294016,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; @@ -226226,29 +294042,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; @@ -226264,86 +294079,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; @@ -226358,55 +294175,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:*/ { @@ -226416,9 +294217,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); @@ -226435,7 +294236,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; } @@ -226503,7 +294304,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; @@ -226515,13 +294316,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); @@ -226531,37 +294330,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; @@ -226577,90 +294376,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 @@ -226677,65 +294478,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:*/ { @@ -226745,7 +294531,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:*/ { @@ -226758,9 +294544,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; { @@ -226769,7 +294560,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); @@ -226873,46 +294664,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; @@ -226920,19 +294724,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); @@ -226945,30 +294749,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; @@ -226984,66 +294786,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) { @@ -227051,20 +294839,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; @@ -227081,7 +294870,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:*/ { @@ -227109,34 +294898,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; @@ -227144,30 +294946,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; @@ -227183,66 +294983,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) { @@ -227250,20 +295036,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; @@ -227280,7 +295067,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:*/ { @@ -227308,34 +295095,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; @@ -227343,28 +295143,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; @@ -227381,7 +295184,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:*/ { @@ -227409,46 +295212,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; @@ -227459,12 +295275,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; @@ -227476,15 +295292,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 @@ -227510,16 +295326,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -227536,18 +295352,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; { @@ -227561,7 +295377,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); @@ -227604,7 +295420,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; @@ -227626,7 +295442,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:; @@ -227639,19 +295455,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; { @@ -227665,7 +295481,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; @@ -227691,29 +295507,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; @@ -227729,66 +295542,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) { @@ -227798,17 +295590,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; @@ -227823,55 +295612,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:*/ { @@ -227881,9 +295646,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); @@ -227900,7 +295665,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; } @@ -227968,7 +295733,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; @@ -227980,13 +295745,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); @@ -228002,31 +295764,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; @@ -228042,66 +295801,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) { @@ -228111,21 +295849,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 @@ -228147,60 +295882,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:*/ { @@ -228210,7 +295921,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:*/ { @@ -228223,9 +295934,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; { @@ -228234,7 +295945,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); @@ -228338,36 +296049,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; @@ -228385,19 +296087,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); @@ -228410,30 +296109,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; @@ -228449,81 +296145,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 @@ -228546,7 +296218,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:*/ { @@ -228574,13 +296246,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; @@ -228597,7 +296269,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:; @@ -228609,30 +296281,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; @@ -228648,81 +296317,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 @@ -228745,7 +296390,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:*/ { @@ -228773,13 +296418,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; @@ -228796,7 +296441,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:; @@ -228808,22 +296453,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 @@ -228846,7 +296491,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:*/ { @@ -228874,13 +296519,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; @@ -228897,7 +296542,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:; @@ -228908,12 +296553,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; @@ -228924,12 +296569,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; @@ -228941,15 +296586,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 @@ -228975,16 +296620,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -229001,18 +296646,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; { @@ -229026,7 +296671,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); @@ -229069,7 +296714,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; @@ -229091,7 +296736,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:; @@ -229104,19 +296749,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; { @@ -229130,7 +296775,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; @@ -229156,29 +296801,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; @@ -229194,86 +296837,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; @@ -229288,55 +296924,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:*/ { @@ -229346,9 +296958,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); @@ -229365,7 +296977,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; } @@ -229433,7 +297045,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; @@ -229445,13 +297057,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); @@ -229467,31 +297076,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; @@ -229507,90 +297114,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 @@ -229612,60 +297212,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:*/ { @@ -229675,7 +297251,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:*/ { @@ -229688,9 +297264,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; { @@ -229699,7 +297275,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); @@ -229803,36 +297379,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; @@ -229850,19 +297417,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); @@ -229875,30 +297439,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; @@ -229914,81 +297475,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 @@ -230011,7 +297548,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:*/ { @@ -230039,13 +297576,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; @@ -230062,7 +297599,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:; @@ -230074,30 +297611,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; @@ -230113,81 +297647,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 @@ -230210,7 +297720,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:*/ { @@ -230238,13 +297748,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; @@ -230261,7 +297771,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:; @@ -230273,22 +297783,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 @@ -230311,7 +297821,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:*/ { @@ -230339,13 +297849,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; @@ -230362,7 +297872,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:; @@ -230373,12 +297883,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; @@ -230389,12 +297899,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; @@ -230406,15 +297916,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 @@ -230440,16 +297950,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -230466,18 +297976,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; { @@ -230491,7 +298001,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); @@ -230534,7 +298044,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; @@ -230556,7 +298066,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:; @@ -230569,19 +298079,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; { @@ -230595,7 +298105,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; @@ -230621,24 +298131,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 @@ -230659,86 +298169,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; @@ -230753,55 +298279,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:*/ { @@ -230811,9 +298321,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); @@ -230830,7 +298340,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; } @@ -230898,7 +298408,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; @@ -230910,13 +298420,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); @@ -230926,32 +298434,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 @@ -230972,90 +298481,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 @@ -231072,65 +298597,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:*/ { @@ -231140,7 +298650,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:*/ { @@ -231153,9 +298663,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; { @@ -231164,7 +298679,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); @@ -231268,46 +298783,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; @@ -231315,19 +298843,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); @@ -231340,30 +298868,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; @@ -231379,66 +298905,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) { @@ -231446,20 +298958,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; @@ -231476,7 +298989,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:*/ { @@ -231504,34 +299017,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; @@ -231539,30 +299065,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; @@ -231578,66 +299102,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) { @@ -231645,20 +299155,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; @@ -231675,7 +299186,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:*/ { @@ -231703,34 +299214,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; @@ -231738,28 +299262,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; @@ -231776,7 +299303,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:*/ { @@ -231804,46 +299331,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; @@ -231854,12 +299394,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; @@ -231871,15 +299411,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 @@ -231905,16 +299445,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -231931,18 +299471,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; { @@ -231956,7 +299496,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); @@ -231999,7 +299539,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; @@ -232021,7 +299561,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:; @@ -232034,19 +299574,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; { @@ -232060,7 +299600,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; @@ -232086,29 +299626,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; @@ -232124,86 +299663,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; @@ -232218,55 +299758,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:*/ { @@ -232276,9 +299800,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); @@ -232295,7 +299819,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; } @@ -232363,7 +299887,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; @@ -232375,13 +299899,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); @@ -232397,31 +299919,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; @@ -232437,90 +299958,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 @@ -232542,60 +300064,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:*/ { @@ -232605,7 +300111,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:*/ { @@ -232618,9 +300124,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; { @@ -232629,7 +300135,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); @@ -232733,36 +300239,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; @@ -232780,19 +300280,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); @@ -232805,30 +300303,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; @@ -232844,66 +300340,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) { @@ -232911,14 +300393,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 @@ -232941,7 +300421,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:*/ { @@ -232969,13 +300449,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; @@ -232992,7 +300472,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:; @@ -233004,30 +300484,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; @@ -233043,66 +300521,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) { @@ -233110,14 +300574,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 @@ -233140,7 +300602,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:*/ { @@ -233168,13 +300630,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; @@ -233191,7 +300653,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:; @@ -233203,22 +300665,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 @@ -233241,7 +300703,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:*/ { @@ -233269,13 +300731,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; @@ -233292,7 +300754,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:; @@ -233303,12 +300765,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; @@ -233319,12 +300781,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; @@ -233336,15 +300798,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 @@ -233370,16 +300832,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -233396,18 +300858,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; { @@ -233421,7 +300883,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); @@ -233464,7 +300926,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; @@ -233486,7 +300948,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:; @@ -233499,19 +300961,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; { @@ -233525,7 +300987,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; @@ -233551,26 +301013,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; @@ -233586,45 +301051,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) { @@ -233634,14 +301120,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; @@ -233656,31 +301148,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:*/ { @@ -233690,9 +301206,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); @@ -233709,7 +301225,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; } @@ -233777,7 +301293,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; @@ -233789,10 +301305,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); @@ -233802,34 +301321,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; @@ -233845,45 +301370,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) { @@ -233893,18 +301439,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 @@ -233921,41 +301473,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:*/ { @@ -233965,7 +301544,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:*/ { @@ -233978,9 +301557,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; { @@ -233989,7 +301583,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); @@ -234093,37 +301687,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; @@ -234131,16 +301799,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); @@ -234153,27 +301830,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; @@ -234189,63 +301869,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; @@ -234262,7 +301973,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:*/ { @@ -234290,34 +302001,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; @@ -234325,27 +302063,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; @@ -234361,63 +302102,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; @@ -234434,7 +302206,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:*/ { @@ -234462,34 +302234,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; @@ -234497,28 +302296,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; @@ -234535,7 +302341,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:*/ { @@ -234563,46 +302369,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; @@ -234613,12 +302446,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; @@ -234630,15 +302463,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 @@ -234664,16 +302497,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -234690,18 +302523,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; { @@ -234715,7 +302548,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); @@ -234758,7 +302591,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; @@ -234780,7 +302613,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:; @@ -234793,19 +302626,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; { @@ -234819,7 +302652,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; @@ -234845,30 +302678,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; @@ -234884,82 +302714,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) { @@ -234970,16 +302779,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; @@ -234995,55 +302801,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:*/ { @@ -235053,9 +302835,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); @@ -235072,7 +302854,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; } @@ -235140,7 +302922,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; @@ -235152,13 +302934,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); @@ -235174,32 +302953,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; @@ -235215,82 +302991,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) { @@ -235301,11 +303056,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; @@ -235314,8 +303066,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 @@ -235337,60 +303089,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:*/ { @@ -235400,7 +303128,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:*/ { @@ -235413,7 +303141,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; @@ -235424,7 +303152,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); @@ -235528,36 +303256,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; @@ -235575,13 +303294,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); @@ -235600,30 +303316,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; @@ -235639,80 +303352,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; @@ -235736,7 +303425,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:*/ { @@ -235764,13 +303453,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; @@ -235787,7 +303476,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:; @@ -235799,30 +303488,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; @@ -235838,80 +303524,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; @@ -235935,7 +303597,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:*/ { @@ -235963,13 +303625,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; @@ -235986,7 +303648,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:; @@ -235998,21 +303660,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; @@ -236036,7 +303698,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:*/ { @@ -236064,13 +303726,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; @@ -236087,7 +303749,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:; @@ -236098,12 +303760,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; @@ -236114,12 +303776,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; @@ -236131,15 +303793,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 @@ -236165,16 +303827,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -236191,18 +303853,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; { @@ -236216,7 +303878,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); @@ -236259,7 +303921,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; @@ -236281,7 +303943,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:; @@ -236294,19 +303956,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; { @@ -236320,7 +303982,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; @@ -236346,14 +304008,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 @@ -236361,12 +304023,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; @@ -236382,78 +304043,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; @@ -236469,31 +304113,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:*/ { @@ -236503,9 +304147,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); @@ -236522,7 +304166,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; } @@ -236590,7 +304234,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; @@ -236602,7 +304246,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); @@ -236621,16 +304265,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 @@ -236638,12 +304282,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; @@ -236659,72 +304302,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; @@ -236734,8 +304360,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 @@ -236757,36 +304383,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:*/ { @@ -236796,7 +304422,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:*/ { @@ -236809,7 +304435,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; @@ -236820,7 +304446,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); @@ -236924,27 +304550,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; @@ -236962,7 +304588,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); @@ -236984,15 +304610,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 @@ -237022,43 +304648,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) { @@ -237069,7 +304695,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; @@ -237093,7 +304719,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:*/ { @@ -237121,13 +304747,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; @@ -237144,7 +304770,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:; @@ -237156,15 +304782,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 @@ -237194,43 +304820,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) { @@ -237241,7 +304867,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; @@ -237265,7 +304891,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:*/ { @@ -237293,13 +304919,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; @@ -237316,7 +304942,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:; @@ -237328,21 +304954,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; @@ -237366,7 +304992,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:*/ { @@ -237394,13 +305020,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; @@ -237417,7 +305043,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:; @@ -237428,12 +305054,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; @@ -237444,12 +305070,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; @@ -237461,15 +305087,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 @@ -237495,16 +305121,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -237521,18 +305147,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; { @@ -237546,7 +305172,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); @@ -237589,7 +305215,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; @@ -237611,7 +305237,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:; @@ -237624,19 +305250,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; { @@ -237650,7 +305276,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; @@ -237676,14 +305302,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 @@ -237691,12 +305317,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; @@ -237712,78 +305337,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; @@ -237799,31 +305407,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:*/ { @@ -237833,9 +305441,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); @@ -237852,7 +305460,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; } @@ -237920,7 +305528,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; @@ -237932,7 +305540,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); @@ -237951,16 +305559,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 @@ -237968,12 +305576,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; @@ -237989,72 +305596,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; @@ -238064,8 +305654,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 @@ -238087,36 +305677,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:*/ { @@ -238126,7 +305716,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:*/ { @@ -238139,7 +305729,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; @@ -238150,7 +305740,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); @@ -238254,27 +305844,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; @@ -238292,7 +305882,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); @@ -238314,15 +305904,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 @@ -238352,43 +305942,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) { @@ -238399,7 +305989,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; @@ -238423,7 +306013,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:*/ { @@ -238451,13 +306041,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; @@ -238474,7 +306064,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:; @@ -238486,15 +306076,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 @@ -238524,43 +306114,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) { @@ -238571,7 +306161,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; @@ -238595,7 +306185,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:*/ { @@ -238623,13 +306213,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; @@ -238646,7 +306236,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:; @@ -238658,21 +306248,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; @@ -238696,7 +306286,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:*/ { @@ -238724,13 +306314,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; @@ -238747,7 +306337,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:; @@ -238758,12 +306348,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; @@ -238774,12 +306364,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; @@ -238791,15 +306381,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 @@ -238825,16 +306415,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -238851,18 +306441,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; { @@ -238876,7 +306466,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); @@ -238919,7 +306509,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; @@ -238941,7 +306531,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:; @@ -238954,19 +306544,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; { @@ -238980,7 +306570,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; @@ -239006,14 +306596,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 @@ -239021,14 +306611,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; @@ -239044,107 +306631,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; @@ -239159,31 +306702,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:*/ { @@ -239193,9 +306736,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); @@ -239212,7 +306755,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; } @@ -239280,7 +306823,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; @@ -239292,7 +306835,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); @@ -239305,22 +306848,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 @@ -239328,14 +306872,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; @@ -239351,111 +306892,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 @@ -239472,41 +306969,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:*/ { @@ -239516,7 +307014,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:*/ { @@ -239529,9 +307027,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; { @@ -239540,7 +307043,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); @@ -239644,37 +307147,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; @@ -239682,7 +307201,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); @@ -239691,7 +307211,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); @@ -239704,15 +307225,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 @@ -239742,43 +307263,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) { @@ -239789,14 +307310,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; @@ -239813,7 +307337,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:*/ { @@ -239841,34 +307365,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; @@ -239876,15 +307413,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 @@ -239914,43 +307451,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) { @@ -239961,14 +307498,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; @@ -239985,7 +307525,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:*/ { @@ -240013,34 +307553,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; @@ -240048,28 +307601,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; @@ -240086,7 +307642,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:*/ { @@ -240114,46 +307670,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; @@ -240164,12 +307733,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; @@ -240181,15 +307750,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 @@ -240215,16 +307784,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -240241,18 +307810,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; { @@ -240266,7 +307835,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); @@ -240309,7 +307878,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; @@ -240331,7 +307900,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:; @@ -240344,19 +307913,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; { @@ -240370,7 +307939,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; @@ -240396,28 +307965,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; @@ -240433,87 +308000,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; @@ -240528,39 +308071,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:*/ { @@ -240570,9 +308105,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); @@ -240589,7 +308124,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; } @@ -240657,7 +308192,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; @@ -240669,11 +308204,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); @@ -240683,36 +308217,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; @@ -240728,91 +308261,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 @@ -240829,49 +308338,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:*/ { @@ -240881,7 +308383,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:*/ { @@ -240894,9 +308396,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; { @@ -240905,7 +308412,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); @@ -241009,40 +308516,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; @@ -241050,17 +308570,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); @@ -241073,28 +308594,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; @@ -241110,71 +308630,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; @@ -241191,7 +308706,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:*/ { @@ -241219,34 +308734,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; @@ -241254,28 +308782,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; @@ -241291,71 +308818,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; @@ -241372,7 +308894,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:*/ { @@ -241400,34 +308922,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; @@ -241435,28 +308970,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; @@ -241473,7 +309011,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:*/ { @@ -241501,46 +309039,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; @@ -241551,12 +309102,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; @@ -241568,15 +309119,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 @@ -241602,16 +309153,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -241628,18 +309179,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; { @@ -241653,7 +309204,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); @@ -241696,7 +309247,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; @@ -241718,7 +309269,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:; @@ -241731,19 +309282,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; { @@ -241757,7 +309308,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; @@ -241783,14 +309334,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 @@ -241820,43 +309371,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) { @@ -241866,13 +309417,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; @@ -241888,31 +309439,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:*/ { @@ -241922,9 +309473,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); @@ -241941,7 +309492,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; } @@ -242009,7 +309560,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; @@ -242021,7 +309572,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); @@ -242040,16 +309591,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 @@ -242079,43 +309630,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) { @@ -242125,7 +309676,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; @@ -242135,8 +309686,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 @@ -242158,36 +309709,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:*/ { @@ -242197,7 +309748,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:*/ { @@ -242210,7 +309761,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; @@ -242221,7 +309772,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); @@ -242325,27 +309876,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; @@ -242363,7 +309914,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); @@ -242385,15 +309936,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 @@ -242423,43 +309974,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) { @@ -242470,7 +310021,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; @@ -242494,7 +310045,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:*/ { @@ -242522,13 +310073,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; @@ -242545,7 +310096,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:; @@ -242557,15 +310108,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 @@ -242595,43 +310146,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) { @@ -242642,7 +310193,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; @@ -242666,7 +310217,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:*/ { @@ -242694,13 +310245,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; @@ -242717,7 +310268,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:; @@ -242729,21 +310280,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; @@ -242767,7 +310318,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:*/ { @@ -242795,13 +310346,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; @@ -242818,7 +310369,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:; @@ -242829,12 +310380,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; @@ -242845,12 +310396,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; @@ -242862,15 +310413,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 @@ -242896,16 +310447,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -242922,18 +310473,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; { @@ -242947,7 +310498,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); @@ -242990,7 +310541,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; @@ -243012,7 +310563,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:; @@ -243025,19 +310576,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; { @@ -243051,7 +310602,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; @@ -243077,14 +310628,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 @@ -243114,43 +310665,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) { @@ -243160,14 +310711,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; @@ -243182,31 +310733,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:*/ { @@ -243216,9 +310767,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); @@ -243235,7 +310786,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; } @@ -243303,7 +310854,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; @@ -243315,7 +310866,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); @@ -243334,16 +310885,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 @@ -243373,43 +310924,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) { @@ -243419,18 +310970,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 @@ -243452,36 +311003,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:*/ { @@ -243491,7 +311042,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:*/ { @@ -243504,9 +311055,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; { @@ -243515,7 +311066,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); @@ -243619,27 +311170,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; @@ -243657,7 +311208,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); @@ -243666,7 +311217,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); @@ -243679,15 +311230,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 @@ -243717,43 +311268,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) { @@ -243764,8 +311315,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 @@ -243788,7 +311339,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:*/ { @@ -243816,13 +311367,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; @@ -243839,7 +311390,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:; @@ -243851,15 +311402,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 @@ -243889,43 +311440,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) { @@ -243936,8 +311487,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 @@ -243960,7 +311511,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:*/ { @@ -243988,13 +311539,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; @@ -244011,7 +311562,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:; @@ -244023,22 +311574,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 @@ -244061,7 +311612,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:*/ { @@ -244089,13 +311640,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; @@ -244112,7 +311663,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:; @@ -244123,12 +311674,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; @@ -244139,12 +311690,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; @@ -244156,15 +311707,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 @@ -244190,16 +311741,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -244216,18 +311767,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; { @@ -244241,7 +311792,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); @@ -244284,7 +311835,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; @@ -244306,7 +311857,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:; @@ -244319,19 +311870,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; { @@ -244345,7 +311896,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; @@ -244371,26 +311922,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; @@ -244406,45 +311959,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) { @@ -244454,13 +312021,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; @@ -244476,31 +312045,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:*/ { @@ -244510,9 +312095,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); @@ -244529,7 +312114,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; } @@ -244597,7 +312182,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; @@ -244609,10 +312194,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); @@ -244628,28 +312215,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; @@ -244665,45 +312254,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) { @@ -244713,8 +312316,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; @@ -244723,8 +312328,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 @@ -244746,36 +312351,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:*/ { @@ -244785,7 +312406,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:*/ { @@ -244798,7 +312419,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; @@ -244809,7 +312430,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); @@ -244913,27 +312534,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; @@ -244951,10 +312578,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); @@ -244973,27 +312602,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; @@ -245009,56 +312640,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; @@ -245082,7 +312729,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:*/ { @@ -245110,13 +312757,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; @@ -245133,7 +312780,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:; @@ -245145,27 +312792,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; @@ -245181,56 +312830,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; @@ -245254,7 +312919,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:*/ { @@ -245282,13 +312947,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; @@ -245305,7 +312970,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:; @@ -245317,21 +312982,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; @@ -245355,7 +313020,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:*/ { @@ -245383,13 +313048,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; @@ -245406,7 +313071,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:; @@ -245417,12 +313082,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; @@ -245433,12 +313098,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; @@ -245450,15 +313115,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 @@ -245484,16 +313149,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -245510,18 +313175,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; { @@ -245535,7 +313200,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); @@ -245578,7 +313243,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; @@ -245600,7 +313265,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:; @@ -245613,19 +313278,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; { @@ -245639,7 +313304,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; @@ -245665,14 +313330,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 @@ -245681,13 +313346,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; @@ -245703,50 +313369,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; } @@ -245754,30 +313428,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) { @@ -245785,19 +313464,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; @@ -245812,39 +313495,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:*/ { @@ -245854,9 +313537,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); @@ -245873,7 +313556,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; } @@ -245941,7 +313624,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; @@ -245953,7 +313636,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); @@ -245967,22 +313650,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 @@ -245991,13 +313677,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; @@ -246013,50 +313700,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; } @@ -246064,30 +313759,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) { @@ -246095,11 +313795,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; @@ -246107,11 +313808,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 @@ -246128,49 +313832,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:*/ { @@ -246180,7 +313887,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:*/ { @@ -246193,9 +313900,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; { @@ -246204,7 +313926,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); @@ -246308,40 +314030,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; @@ -246349,7 +314118,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); @@ -246359,7 +314131,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); @@ -246372,15 +314147,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 @@ -246411,50 +314186,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) { @@ -246466,14 +314241,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; @@ -246490,7 +314272,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:*/ { @@ -246518,34 +314300,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; @@ -246553,15 +314362,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 @@ -246592,50 +314401,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) { @@ -246647,14 +314456,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; @@ -246671,7 +314487,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:*/ { @@ -246699,133 +314650,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); @@ -246834,12 +314711,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; @@ -246850,12 +314727,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; @@ -246867,15 +314744,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 @@ -246901,16 +314778,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -246927,18 +314804,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; { @@ -246952,7 +314829,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); @@ -246995,7 +314872,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; @@ -247017,7 +314894,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:; @@ -247030,19 +314907,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; { @@ -247056,7 +314933,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; @@ -247082,27 +314959,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; @@ -247118,61 +314996,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) { @@ -247183,13 +315068,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; @@ -247205,31 +315091,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:*/ { @@ -247239,9 +315133,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); @@ -247258,7 +315152,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; } @@ -247326,7 +315220,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; @@ -247338,10 +315232,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); @@ -247357,29 +315252,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; @@ -247395,61 +315291,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) { @@ -247460,8 +315363,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; @@ -247470,8 +315374,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 @@ -247493,36 +315397,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:*/ { @@ -247532,7 +315444,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:*/ { @@ -247545,7 +315457,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; @@ -247556,7 +315468,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); @@ -247660,27 +315572,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; @@ -247698,10 +315613,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); @@ -247720,27 +315636,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; @@ -247756,56 +315673,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; @@ -247829,7 +315754,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:*/ { @@ -247857,13 +315782,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; @@ -247880,7 +315805,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:; @@ -247892,27 +315817,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; @@ -247928,56 +315854,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; @@ -248001,7 +315935,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:*/ { @@ -248029,13 +315963,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; @@ -248052,7 +315986,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:; @@ -248064,21 +315998,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; @@ -248102,7 +316036,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:*/ { @@ -248130,13 +316064,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; @@ -248153,7 +316087,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:; @@ -248164,12 +316098,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; @@ -248180,12 +316114,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; @@ -248197,15 +316131,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 @@ -248231,16 +316165,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -248257,18 +316191,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; { @@ -248282,7 +316216,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); @@ -248325,7 +316259,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; @@ -248347,7 +316281,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:; @@ -248360,19 +316294,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; { @@ -248386,7 +316320,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; @@ -248412,22 +316346,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 @@ -248448,69 +316382,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; @@ -248526,39 +316469,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:*/ { @@ -248568,9 +316503,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); @@ -248587,7 +316522,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; } @@ -248655,7 +316590,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; @@ -248667,11 +316602,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); @@ -248687,24 +316621,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 @@ -248725,64 +316659,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; @@ -248791,8 +316734,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 @@ -248814,44 +316757,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:*/ { @@ -248861,7 +316796,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:*/ { @@ -248874,7 +316809,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; @@ -248885,7 +316820,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); @@ -248989,30 +316924,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; @@ -249030,11 +316962,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); @@ -249053,28 +316984,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; @@ -249090,64 +317020,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; @@ -249171,7 +317093,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:*/ { @@ -249199,13 +317121,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; @@ -249222,7 +317144,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:; @@ -249234,28 +317156,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; @@ -249271,64 +317192,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; @@ -249352,7 +317265,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:*/ { @@ -249380,13 +317293,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; @@ -249403,7 +317316,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:; @@ -249415,21 +317328,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; @@ -249453,7 +317366,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:*/ { @@ -249481,13 +317394,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; @@ -249504,7 +317417,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:; @@ -249515,12 +317428,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; @@ -249531,12 +317444,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; @@ -249548,15 +317461,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 @@ -249582,16 +317495,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -249608,18 +317521,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; { @@ -249633,7 +317546,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); @@ -249676,7 +317589,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; @@ -249698,7 +317611,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:; @@ -249711,19 +317624,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; { @@ -249737,7 +317650,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; @@ -249763,14 +317676,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 @@ -249779,12 +317692,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; @@ -249800,86 +317716,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; @@ -249897,39 +317849,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:*/ { @@ -249939,9 +317899,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); @@ -249958,7 +317918,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; } @@ -250026,7 +317986,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; @@ -250038,11 +317998,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); @@ -250060,16 +318021,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 @@ -250078,12 +318039,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; @@ -250099,81 +318063,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; @@ -250184,8 +318184,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 @@ -250209,44 +318209,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:*/ { @@ -250256,7 +318264,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:*/ { @@ -250269,17 +318277,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; @@ -250290,7 +318298,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); @@ -250394,63 +318402,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; @@ -250470,11 +318487,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); @@ -250495,15 +318513,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 @@ -250512,11 +318530,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; @@ -250532,52 +318551,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) { @@ -250585,11 +318611,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; @@ -250618,7 +318645,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:*/ { @@ -250646,26 +318673,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; @@ -250687,7 +318714,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:; @@ -250701,15 +318728,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 @@ -250718,11 +318745,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; @@ -250738,52 +318766,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) { @@ -250791,11 +318826,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; @@ -250824,7 +318860,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:*/ { @@ -250852,26 +318888,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; @@ -250893,7 +318929,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:; @@ -250907,21 +318943,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; @@ -250950,7 +318986,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:*/ { @@ -250978,26 +319014,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; @@ -251019,7 +319055,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:; @@ -251032,12 +319068,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; @@ -251048,12 +319084,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; @@ -251065,15 +319101,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 @@ -251099,16 +319135,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -251125,18 +319161,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; { @@ -251150,7 +319186,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); @@ -251193,7 +319229,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; @@ -251215,7 +319251,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:; @@ -251228,19 +319264,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; { @@ -251254,7 +319290,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; @@ -251280,27 +319316,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; @@ -251316,79 +319358,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; @@ -251403,31 +319519,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:*/ { @@ -251437,9 +319569,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); @@ -251456,7 +319588,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; } @@ -251524,7 +319656,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; @@ -251536,10 +319668,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); @@ -251549,35 +319683,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; @@ -251593,83 +319735,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 @@ -251686,41 +319902,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:*/ { @@ -251730,7 +319964,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:*/ { @@ -251743,9 +319977,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; { @@ -251754,7 +319998,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); @@ -251858,37 +320102,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; @@ -251896,16 +320185,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); @@ -251918,27 +320213,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; @@ -251954,63 +320251,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; @@ -252027,7 +320345,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:*/ { @@ -252055,34 +320373,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; @@ -252090,27 +320428,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; @@ -252126,63 +320466,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; @@ -252199,7 +320560,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:*/ { @@ -252227,34 +320588,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; @@ -252262,28 +320643,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; @@ -252300,7 +320686,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:*/ { @@ -252328,46 +320714,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; @@ -252378,12 +320784,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; @@ -252395,15 +320801,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 @@ -252429,16 +320835,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -252455,18 +320861,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; { @@ -252480,7 +320886,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); @@ -252523,7 +320929,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; @@ -252545,7 +320951,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:; @@ -252558,19 +320964,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; { @@ -252584,7 +320990,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; @@ -252610,29 +321016,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; @@ -252648,95 +321060,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; @@ -252751,47 +321260,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:*/ { @@ -252801,9 +321294,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); @@ -252820,7 +321313,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; } @@ -252888,7 +321381,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; @@ -252900,12 +321393,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); @@ -252915,37 +321406,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; @@ -252961,99 +321459,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 @@ -253070,57 +321665,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:*/ { @@ -253130,7 +321710,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:*/ { @@ -253143,9 +321723,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; { @@ -253154,7 +321739,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); @@ -253258,43 +321843,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; @@ -253302,18 +321897,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); @@ -253326,29 +321921,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; @@ -253364,79 +321957,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; @@ -253453,7 +322033,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:*/ { @@ -253481,34 +322061,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; @@ -253516,29 +322109,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; @@ -253554,79 +322145,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; @@ -253643,7 +322221,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:*/ { @@ -253671,34 +322249,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; @@ -253706,28 +322297,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; @@ -253744,7 +322338,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:*/ { @@ -253772,46 +322366,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; @@ -253822,12 +322429,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; @@ -253839,15 +322446,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 @@ -253873,16 +322480,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -253899,18 +322506,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; { @@ -253924,7 +322531,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); @@ -253967,7 +322574,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; @@ -253989,7 +322596,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:; @@ -254002,19 +322609,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; { @@ -254028,7 +322635,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; @@ -254054,28 +322661,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; @@ -254091,87 +322707,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; @@ -254186,39 +322935,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:*/ { @@ -254228,9 +322969,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); @@ -254247,7 +322988,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; } @@ -254315,7 +323056,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; @@ -254327,11 +323068,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); @@ -254341,36 +323081,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; @@ -254386,91 +323136,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 @@ -254487,49 +323370,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:*/ { @@ -254539,7 +323415,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:*/ { @@ -254552,9 +323428,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; { @@ -254563,7 +323444,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); @@ -254667,40 +323548,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; @@ -254708,17 +323602,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); @@ -254731,28 +323626,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; @@ -254768,75 +323662,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; @@ -254849,7 +324043,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:*/ { @@ -254877,315 +324071,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(); @@ -255193,12 +324118,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; @@ -255209,12 +324134,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; @@ -255226,15 +324151,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 @@ -255260,16 +324185,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -255286,18 +324211,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; { @@ -255311,7 +324236,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); @@ -255354,7 +324279,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; @@ -255376,7 +324301,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:; @@ -255389,19 +324314,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; { @@ -255415,7 +324340,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; @@ -255441,14 +324366,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 @@ -255479,59 +324404,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) { @@ -255542,13 +324467,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; @@ -255564,31 +324489,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:*/ { @@ -255598,9 +324523,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); @@ -255617,7 +324542,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; } @@ -255685,7 +324610,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; @@ -255697,7 +324622,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); @@ -255716,16 +324641,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 @@ -255756,59 +324681,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) { @@ -255819,7 +324744,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; @@ -255829,8 +324754,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 @@ -255852,36 +324777,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:*/ { @@ -255891,7 +324816,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:*/ { @@ -255904,7 +324829,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; @@ -255915,7 +324840,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); @@ -256019,27 +324944,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; @@ -256057,7 +324982,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); @@ -256079,15 +325004,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 @@ -256117,43 +325042,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) { @@ -256164,7 +325089,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; @@ -256188,7 +325113,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:*/ { @@ -256216,13 +325141,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; @@ -256239,7 +325164,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:; @@ -256251,15 +325176,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 @@ -256289,43 +325214,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) { @@ -256336,7 +325261,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; @@ -256360,7 +325285,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:*/ { @@ -256388,13 +325313,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; @@ -256411,7 +325336,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:; @@ -256423,21 +325348,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; @@ -256461,7 +325386,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:*/ { @@ -256489,13 +325414,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; @@ -256512,7 +325437,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:; @@ -256523,12 +325448,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; @@ -256539,12 +325464,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; @@ -256556,15 +325481,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 @@ -256590,16 +325515,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -256616,18 +325541,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; { @@ -256641,7 +325566,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); @@ -256684,7 +325609,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; @@ -256706,7 +325631,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:; @@ -256719,19 +325644,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; { @@ -256745,7 +325670,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; @@ -256771,27 +325696,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; @@ -256807,79 +325737,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; @@ -256894,31 +325877,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:*/ { @@ -256928,9 +325935,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); @@ -256947,7 +325954,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; } @@ -257015,7 +326022,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; @@ -257027,10 +326034,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); @@ -257040,35 +326050,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; @@ -257084,83 +326100,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 @@ -257177,41 +326246,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:*/ { @@ -257221,7 +326315,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:*/ { @@ -257234,9 +326328,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; { @@ -257245,7 +326344,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); @@ -257349,37 +326448,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; @@ -257387,16 +326520,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); @@ -257409,27 +326547,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; @@ -257445,63 +326586,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; @@ -257518,7 +326686,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:*/ { @@ -257546,34 +326714,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; @@ -257581,27 +326762,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; @@ -257617,63 +326801,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; @@ -257690,7 +326901,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:*/ { @@ -257718,34 +326929,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; @@ -257753,28 +326977,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; @@ -257791,7 +327018,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:*/ { @@ -257819,46 +327046,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; @@ -257869,12 +327109,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; @@ -257886,15 +327126,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 @@ -257920,16 +327160,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -257946,18 +327186,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; { @@ -257971,7 +327211,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); @@ -258014,7 +327254,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; @@ -258036,7 +327276,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:; @@ -258049,19 +327289,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; { @@ -258075,7 +327315,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; @@ -258101,29 +327341,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; @@ -258139,75 +327377,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) { @@ -258218,17 +327442,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; @@ -258243,47 +327464,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:*/ { @@ -258293,9 +327498,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); @@ -258312,7 +327517,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; } @@ -258380,7 +327585,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; @@ -258392,12 +327597,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); @@ -258407,38 +327610,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; @@ -258454,75 +327654,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) { @@ -258533,21 +327719,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 @@ -258564,58 +327747,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:*/ { @@ -258625,7 +327791,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:*/ { @@ -258638,14 +327804,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; { @@ -258654,7 +327815,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); @@ -258758,65 +327919,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; @@ -258824,20 +327957,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); @@ -258850,29 +327979,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; @@ -258888,82 +328015,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; @@ -258980,7 +328088,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:*/ { @@ -259008,47 +328116,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; @@ -259056,29 +328151,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; @@ -259094,82 +328187,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; @@ -259186,7 +328260,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:*/ { @@ -259214,47 +328288,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; @@ -259262,31 +328323,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; @@ -259303,7 +328361,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:*/ { @@ -259331,59 +328389,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; @@ -259394,12 +328439,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; @@ -259411,15 +328456,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 @@ -259445,16 +328490,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -259471,18 +328516,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; { @@ -259496,7 +328541,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); @@ -259539,7 +328584,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; @@ -259561,7 +328606,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:; @@ -259574,19 +328619,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; { @@ -259600,7 +328645,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; @@ -259626,14 +328671,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 @@ -259641,11 +328686,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; @@ -259661,61 +328707,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; @@ -259731,31 +328794,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:*/ { @@ -259765,9 +328828,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); @@ -259784,7 +328847,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; } @@ -259852,7 +328915,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; @@ -259864,7 +328927,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); @@ -259883,16 +328946,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 @@ -259900,11 +328963,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; @@ -259920,55 +328984,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; @@ -259978,8 +329059,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 @@ -260001,36 +329082,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:*/ { @@ -260040,7 +329121,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:*/ { @@ -260053,7 +329134,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; @@ -260064,7 +329145,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); @@ -260168,27 +329249,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; @@ -260206,7 +329287,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); @@ -260228,15 +329309,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 @@ -260266,43 +329347,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) { @@ -260313,7 +329394,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; @@ -260337,7 +329418,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:*/ { @@ -260365,13 +329446,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; @@ -260388,7 +329469,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:; @@ -260400,15 +329481,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 @@ -260438,43 +329519,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) { @@ -260485,7 +329566,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; @@ -260509,7 +329590,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:*/ { @@ -260537,13 +329618,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; @@ -260560,7 +329641,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:; @@ -260572,21 +329653,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; @@ -260610,7 +329691,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:*/ { @@ -260638,13 +329719,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; @@ -260661,7 +329742,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:; @@ -260672,12 +329753,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; @@ -260688,12 +329769,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; @@ -260705,15 +329786,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 @@ -260739,16 +329820,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -260765,18 +329846,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; { @@ -260790,7 +329871,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); @@ -260833,7 +329914,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; @@ -260855,7 +329936,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:; @@ -260868,19 +329949,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; { @@ -260894,7 +329975,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; @@ -260920,14 +330001,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 @@ -260935,11 +330016,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; @@ -260955,61 +330037,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; @@ -261025,31 +330124,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:*/ { @@ -261059,9 +330158,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); @@ -261078,7 +330177,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; } @@ -261146,7 +330245,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; @@ -261158,7 +330257,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); @@ -261177,16 +330276,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 @@ -261194,11 +330293,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; @@ -261214,55 +330314,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; @@ -261272,8 +330389,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 @@ -261295,36 +330412,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:*/ { @@ -261334,7 +330451,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:*/ { @@ -261347,7 +330464,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; @@ -261358,7 +330475,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); @@ -261462,27 +330579,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; @@ -261500,7 +330617,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); @@ -261522,15 +330639,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 @@ -261560,43 +330677,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) { @@ -261607,7 +330724,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; @@ -261631,7 +330748,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:*/ { @@ -261659,13 +330776,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; @@ -261682,7 +330799,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:; @@ -261694,15 +330811,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 @@ -261732,43 +330849,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) { @@ -261779,7 +330896,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; @@ -261803,7 +330920,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:*/ { @@ -261831,13 +330948,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; @@ -261854,7 +330971,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:; @@ -261866,21 +330983,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; @@ -261904,7 +331021,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:*/ { @@ -261932,13 +331049,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; @@ -261955,7 +331072,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:; @@ -261966,12 +331083,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; @@ -261982,12 +331099,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; @@ -261999,15 +331116,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 @@ -262033,16 +331150,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -262059,18 +331176,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; { @@ -262084,7 +331201,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); @@ -262127,7 +331244,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; @@ -262149,7 +331266,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:; @@ -262162,19 +331279,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; { @@ -262188,7 +331305,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; @@ -262214,14 +331331,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 @@ -262252,59 +331369,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) { @@ -262315,13 +331432,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; @@ -262337,31 +331454,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:*/ { @@ -262371,9 +331488,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); @@ -262390,7 +331507,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; } @@ -262458,7 +331575,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; @@ -262470,7 +331587,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); @@ -262489,16 +331606,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 @@ -262529,59 +331646,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) { @@ -262592,7 +331709,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; @@ -262602,8 +331719,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 @@ -262625,36 +331742,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:*/ { @@ -262664,7 +331781,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:*/ { @@ -262677,7 +331794,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; @@ -262688,7 +331805,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); @@ -262792,27 +331909,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; @@ -262830,7 +331947,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); @@ -262852,15 +331969,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 @@ -262890,43 +332007,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) { @@ -262937,7 +332054,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; @@ -262961,7 +332078,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:*/ { @@ -262989,13 +332106,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; @@ -263012,7 +332129,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:; @@ -263024,15 +332141,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 @@ -263062,43 +332179,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) { @@ -263109,7 +332226,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; @@ -263133,7 +332250,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:*/ { @@ -263161,13 +332278,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; @@ -263184,7 +332301,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:; @@ -263196,21 +332313,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; @@ -263234,7 +332351,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:*/ { @@ -263262,13 +332379,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; @@ -263285,7 +332402,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:; @@ -263296,12 +332413,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; @@ -263312,12 +332429,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; @@ -263329,15 +332446,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 @@ -263363,16 +332480,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -263389,18 +332506,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; { @@ -263414,7 +332531,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); @@ -263457,7 +332574,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; @@ -263479,7 +332596,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:; @@ -263492,19 +332609,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; { @@ -263518,7 +332635,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; @@ -263544,29 +332661,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; @@ -263582,102 +332696,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; @@ -263692,39 +332766,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:*/ { @@ -263734,9 +332800,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); @@ -263753,7 +332819,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; } @@ -263821,7 +332887,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; @@ -263833,11 +332899,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); @@ -263847,38 +332912,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; @@ -263894,106 +332955,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 @@ -264010,50 +333031,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:*/ { @@ -264063,7 +333075,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:*/ { @@ -264076,14 +333088,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; { @@ -264092,7 +333099,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); @@ -264196,59 +333203,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; @@ -264256,19 +333241,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); @@ -264281,28 +333263,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; @@ -264318,74 +333299,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; @@ -264402,7 +333372,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:*/ { @@ -264430,47 +333400,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; @@ -264478,28 +333435,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; @@ -264515,74 +333471,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; @@ -264599,7 +333544,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:*/ { @@ -264627,47 +333572,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; @@ -264675,31 +333607,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; @@ -264716,7 +333645,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:*/ { @@ -264744,59 +333673,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; @@ -264807,12 +333723,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; @@ -264824,15 +333740,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 @@ -264858,16 +333774,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -264884,18 +333800,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; { @@ -264909,7 +333825,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); @@ -264952,7 +333868,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; @@ -264974,7 +333890,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:; @@ -264987,19 +333903,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; { @@ -265013,7 +333929,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; @@ -265039,29 +333955,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; @@ -265077,66 +333990,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) { @@ -265146,20 +334038,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; @@ -265174,55 +334060,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:*/ { @@ -265232,9 +334094,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); @@ -265251,7 +334113,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; } @@ -265319,7 +334181,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; @@ -265331,13 +334193,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); @@ -265347,40 +334206,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; @@ -265396,66 +334249,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) { @@ -265465,24 +334297,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 @@ -265499,68 +334325,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:*/ { @@ -265570,7 +334369,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:*/ { @@ -265583,24 +334382,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; { @@ -265609,7 +334393,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); @@ -265713,111 +334497,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; @@ -265825,25 +334535,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); @@ -265856,30 +334557,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; @@ -265895,94 +334593,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; @@ -265999,7 +334666,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:*/ { @@ -266027,61 +334694,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; @@ -266089,30 +334729,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; @@ -266128,94 +334765,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; @@ -266232,142 +334838,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:*/ { @@ -266395,60 +334866,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(); @@ -266456,12 +335001,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; @@ -266472,12 +335017,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; @@ -266489,15 +335034,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 @@ -266523,16 +335068,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -266549,18 +335094,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; { @@ -266574,7 +335119,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); @@ -266617,7 +335162,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; @@ -266639,7 +335184,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:; @@ -266652,19 +335197,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; { @@ -266678,7 +335223,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; @@ -266704,14 +335249,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 @@ -266720,11 +335265,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; @@ -266740,78 +335286,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; @@ -266827,31 +335387,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:*/ { @@ -266861,9 +335421,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); @@ -266880,7 +335440,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; } @@ -266948,7 +335508,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; @@ -266960,7 +335520,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); @@ -266979,16 +335539,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 @@ -266997,11 +335557,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; @@ -267017,72 +335578,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; @@ -267092,8 +335667,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 @@ -267115,36 +335690,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:*/ { @@ -267154,7 +335729,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:*/ { @@ -267167,7 +335742,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; @@ -267178,7 +335753,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); @@ -267282,27 +335857,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; @@ -267320,7 +335895,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); @@ -267342,15 +335917,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 @@ -267380,43 +335955,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) { @@ -267427,7 +336002,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; @@ -267451,7 +336026,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:*/ { @@ -267479,13 +336054,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; @@ -267502,7 +336077,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:; @@ -267514,15 +336089,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 @@ -267552,43 +336127,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) { @@ -267599,7 +336174,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; @@ -267623,7 +336198,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:*/ { @@ -267651,13 +336226,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; @@ -267674,7 +336249,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:; @@ -267686,21 +336261,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; @@ -267724,7 +336299,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:*/ { @@ -267752,13 +336327,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; @@ -267775,7 +336350,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:; @@ -267786,12 +336361,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; @@ -267802,12 +336377,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; @@ -267819,15 +336394,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 @@ -267853,16 +336428,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -267879,18 +336454,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; { @@ -267904,7 +336479,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); @@ -267947,7 +336522,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; @@ -267969,7 +336544,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:; @@ -267982,19 +336557,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; { @@ -268008,7 +336583,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; @@ -268034,14 +336609,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 @@ -268049,11 +336624,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; @@ -268069,62 +336647,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; @@ -268139,31 +336764,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:*/ { @@ -268173,9 +336798,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); @@ -268192,7 +336817,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; } @@ -268260,7 +336885,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; @@ -268272,7 +336897,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); @@ -268285,22 +336910,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 @@ -268308,11 +336935,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; @@ -268328,66 +336958,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 @@ -268404,41 +337081,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:*/ { @@ -268448,7 +337127,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:*/ { @@ -268461,9 +337140,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; { @@ -268472,7 +337161,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); @@ -268576,37 +337265,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; @@ -268614,7 +337330,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); @@ -268623,7 +337341,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); @@ -268636,15 +337356,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 @@ -268674,43 +337394,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) { @@ -268721,14 +337441,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; @@ -268745,7 +337470,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:*/ { @@ -268773,34 +337498,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; @@ -268808,15 +337553,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 @@ -268846,43 +337591,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) { @@ -268893,14 +337638,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; @@ -268917,7 +337667,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:*/ { @@ -268945,34 +337695,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; @@ -268980,28 +337750,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; @@ -269018,7 +337793,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:*/ { @@ -269046,46 +337821,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; @@ -269096,12 +337891,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; @@ -269113,15 +337908,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 @@ -269147,16 +337942,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -269173,18 +337968,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; { @@ -269198,7 +337993,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); @@ -269241,7 +338036,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; @@ -269263,7 +338058,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:; @@ -269276,19 +338071,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; { @@ -269302,7 +338097,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; @@ -269328,14 +338123,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 @@ -269343,11 +338138,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; @@ -269363,62 +338164,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; @@ -269433,31 +338323,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:*/ { @@ -269467,9 +338357,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); @@ -269486,7 +338376,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; } @@ -269554,7 +338444,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; @@ -269566,7 +338456,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); @@ -269579,22 +338469,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 @@ -269602,11 +338494,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; @@ -269622,66 +338520,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 @@ -269698,41 +338685,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:*/ { @@ -269742,7 +338731,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:*/ { @@ -269755,9 +338744,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; { @@ -269766,7 +338765,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); @@ -269870,37 +338869,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; @@ -269908,7 +338934,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); @@ -269917,7 +338945,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); @@ -269930,15 +338960,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 @@ -269968,43 +338998,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) { @@ -270015,14 +339045,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; @@ -270039,7 +339074,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:*/ { @@ -270067,34 +339102,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; @@ -270102,15 +339157,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 @@ -270140,43 +339195,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) { @@ -270187,14 +339242,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; @@ -270211,7 +339271,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:*/ { @@ -270239,34 +339299,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; @@ -270274,28 +339354,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; @@ -270312,7 +339397,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:*/ { @@ -270340,46 +339425,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; @@ -270390,12 +339495,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; @@ -270407,15 +339512,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 @@ -270441,16 +339546,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -270467,18 +339572,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; { @@ -270492,7 +339597,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); @@ -270535,7 +339640,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; @@ -270557,7 +339662,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:; @@ -270570,19 +339675,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; { @@ -270596,7 +339701,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; @@ -270622,14 +339727,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 @@ -270637,11 +339742,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; @@ -270657,63 +339763,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; @@ -270728,31 +339852,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:*/ { @@ -270762,9 +339886,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); @@ -270781,7 +339905,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; } @@ -270849,7 +339973,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; @@ -270861,7 +339985,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); @@ -270875,22 +339999,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 @@ -270898,11 +340023,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; @@ -270918,67 +340044,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 @@ -270996,41 +340140,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:*/ { @@ -271040,7 +340185,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:*/ { @@ -271053,14 +340198,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; { @@ -271069,7 +340219,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); @@ -271173,53 +340323,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; @@ -271228,7 +340389,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); @@ -271237,8 +340399,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); @@ -271251,15 +340414,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 @@ -271289,43 +340452,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) { @@ -271336,9 +340499,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 @@ -271347,6 +340511,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; @@ -271363,7 +340528,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:*/ { @@ -271391,33 +340556,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; @@ -271426,12 +340596,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; @@ -271439,15 +340611,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 @@ -271477,43 +340649,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) { @@ -271524,9 +340696,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 @@ -271535,6 +340708,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; @@ -271551,7 +340725,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:*/ { @@ -271579,33 +340753,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; @@ -271614,12 +340793,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; @@ -271627,23 +340808,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 @@ -271652,6 +340834,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; @@ -271668,7 +340851,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:*/ { @@ -271696,33 +340879,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; @@ -271731,24 +340919,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; @@ -271759,12 +340949,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; @@ -271776,15 +340966,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 @@ -271810,16 +341000,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -271836,18 +341026,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; { @@ -271861,7 +341051,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); @@ -271904,7 +341094,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; @@ -271926,7 +341116,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:; @@ -271939,19 +341129,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; { @@ -271965,7 +341155,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; @@ -271991,14 +341181,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 @@ -272006,11 +341196,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; @@ -272026,63 +341218,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; @@ -272097,31 +341320,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:*/ { @@ -272131,9 +341354,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); @@ -272150,7 +341373,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; } @@ -272218,7 +341441,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; @@ -272230,7 +341453,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); @@ -272250,16 +341473,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 @@ -272267,11 +341490,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; @@ -272287,67 +341512,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 @@ -272370,36 +341626,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:*/ { @@ -272409,7 +341665,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:*/ { @@ -272422,14 +341678,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; { @@ -272438,7 +341694,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); @@ -272542,43 +341798,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; @@ -272597,7 +341853,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); @@ -272606,8 +341862,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); @@ -272620,15 +341876,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 @@ -272658,43 +341914,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) { @@ -272705,9 +341961,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 @@ -272732,7 +341988,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:*/ { @@ -272760,22 +342016,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; { @@ -272795,7 +342051,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:; @@ -272808,15 +342064,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 @@ -272846,43 +342102,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) { @@ -272893,9 +342149,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 @@ -272920,7 +342176,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:*/ { @@ -272948,22 +342204,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; { @@ -272983,7 +342239,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:; @@ -272996,23 +342252,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 @@ -273037,7 +342293,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:*/ { @@ -273065,22 +342321,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; { @@ -273100,7 +342356,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:; @@ -273112,12 +342368,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; @@ -273128,12 +342384,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; @@ -273145,15 +342401,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 @@ -273179,16 +342435,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -273205,18 +342461,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; { @@ -273230,7 +342486,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); @@ -273273,7 +342529,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; @@ -273295,7 +342551,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:; @@ -273308,19 +342564,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; { @@ -273334,7 +342590,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; @@ -273360,26 +342616,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; @@ -273395,45 +342653,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) { @@ -273443,13 +342715,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; @@ -273465,31 +342739,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:*/ { @@ -273499,9 +342789,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); @@ -273518,7 +342808,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; } @@ -273586,7 +342876,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; @@ -273598,10 +342888,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); @@ -273617,28 +342909,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; @@ -273654,45 +342948,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) { @@ -273702,8 +343010,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; @@ -273712,8 +343022,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 @@ -273735,36 +343045,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:*/ { @@ -273774,7 +343100,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:*/ { @@ -273787,7 +343113,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; @@ -273798,7 +343124,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); @@ -273902,27 +343228,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; @@ -273940,10 +343272,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); @@ -273962,27 +343296,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; @@ -273998,56 +343334,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; @@ -274071,7 +343423,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:*/ { @@ -274099,13 +343451,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; @@ -274122,7 +343474,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:; @@ -274134,27 +343486,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; @@ -274170,56 +343524,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; @@ -274243,7 +343613,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:*/ { @@ -274271,13 +343641,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; @@ -274294,7 +343664,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:; @@ -274306,21 +343676,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; @@ -274344,7 +343714,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:*/ { @@ -274372,13 +343742,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; @@ -274395,7 +343765,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:; @@ -274406,12 +343776,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; @@ -274422,12 +343792,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; @@ -274439,15 +343809,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 @@ -274473,16 +343843,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -274499,18 +343869,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; { @@ -274524,7 +343894,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); @@ -274567,7 +343937,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; @@ -274589,7 +343959,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:; @@ -274602,19 +343972,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; { @@ -274628,7 +343998,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; @@ -274654,26 +344024,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; @@ -274689,62 +344062,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; @@ -274759,31 +344171,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:*/ { @@ -274793,9 +344213,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); @@ -274812,7 +344232,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; } @@ -274880,7 +344300,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; @@ -274892,10 +344312,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); @@ -274911,28 +344332,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; @@ -274948,66 +344372,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 @@ -275029,36 +344492,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:*/ { @@ -275068,7 +344539,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:*/ { @@ -275081,9 +344552,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; { @@ -275092,7 +344563,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); @@ -275196,27 +344667,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; @@ -275234,16 +344708,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); @@ -275256,27 +344731,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; @@ -275292,57 +344768,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 @@ -275365,7 +344849,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:*/ { @@ -275393,13 +344877,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; @@ -275416,7 +344900,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:; @@ -275428,27 +344912,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; @@ -275464,57 +344949,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 @@ -275537,7 +345030,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:*/ { @@ -275565,13 +345058,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; @@ -275588,7 +345081,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:; @@ -275600,22 +345093,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 @@ -275638,7 +345131,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:*/ { @@ -275666,13 +345159,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; @@ -275689,7 +345182,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:; @@ -275700,12 +345193,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; @@ -275716,12 +345209,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; @@ -275733,15 +345226,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 @@ -275767,16 +345260,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -275793,18 +345286,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; { @@ -275818,7 +345311,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); @@ -275861,7 +345354,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; @@ -275883,7 +345376,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:; @@ -275896,19 +345389,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; { @@ -275922,7 +345415,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; @@ -275948,28 +345441,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; @@ -275985,86 +345480,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; @@ -276080,39 +345603,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:*/ { @@ -276122,9 +345645,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); @@ -276141,7 +345664,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; } @@ -276209,7 +345732,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; @@ -276221,11 +345744,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); @@ -276241,30 +345764,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; @@ -276280,81 +345805,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; @@ -276363,8 +345916,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 @@ -276386,44 +345939,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:*/ { @@ -276433,7 +345986,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:*/ { @@ -276446,7 +345999,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; @@ -276457,7 +346010,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); @@ -276561,30 +346114,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; @@ -276602,11 +346155,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); @@ -276625,23 +346178,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 @@ -276662,52 +346215,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) { @@ -276719,7 +346272,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; @@ -276743,7 +346296,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:*/ { @@ -276771,13 +346324,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; @@ -276794,7 +346347,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:; @@ -276806,23 +346359,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 @@ -276843,52 +346396,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) { @@ -276900,7 +346453,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; @@ -276924,7 +346477,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:*/ { @@ -276952,13 +346505,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; @@ -276975,7 +346528,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:; @@ -276987,21 +346540,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; @@ -277025,7 +346578,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:*/ { @@ -277053,13 +346606,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; @@ -277076,7 +346629,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:; @@ -277087,12 +346640,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; @@ -277103,12 +346656,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; @@ -277120,15 +346673,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 @@ -277154,16 +346707,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -277180,18 +346733,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; { @@ -277205,7 +346758,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); @@ -277248,7 +346801,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; @@ -277270,7 +346823,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:; @@ -277283,19 +346836,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; { @@ -277309,7 +346862,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; @@ -277335,14 +346888,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 @@ -277373,59 +346926,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) { @@ -277436,13 +346989,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; @@ -277458,31 +347011,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:*/ { @@ -277492,9 +347045,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); @@ -277511,7 +347064,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; } @@ -277579,7 +347132,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; @@ -277591,7 +347144,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); @@ -277610,16 +347163,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 @@ -277650,59 +347203,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) { @@ -277713,7 +347266,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; @@ -277723,8 +347276,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 @@ -277746,36 +347299,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:*/ { @@ -277785,7 +347338,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:*/ { @@ -277798,7 +347351,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; @@ -277809,7 +347362,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); @@ -277913,27 +347466,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; @@ -277951,7 +347504,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); @@ -277973,15 +347526,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 @@ -278011,43 +347564,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) { @@ -278058,7 +347611,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; @@ -278082,7 +347635,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:*/ { @@ -278110,13 +347663,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; @@ -278133,7 +347686,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:; @@ -278145,15 +347698,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 @@ -278183,43 +347736,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) { @@ -278230,7 +347783,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; @@ -278254,7 +347807,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:*/ { @@ -278282,13 +347835,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; @@ -278305,7 +347858,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:; @@ -278317,21 +347870,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; @@ -278355,7 +347908,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:*/ { @@ -278383,13 +347936,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; @@ -278406,7 +347959,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:; @@ -278417,12 +347970,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; @@ -278433,12 +347986,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; @@ -278450,15 +348003,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 @@ -278484,16 +348037,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -278510,18 +348063,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; { @@ -278535,7 +348088,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); @@ -278578,7 +348131,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; @@ -278600,7 +348153,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:; @@ -278613,19 +348166,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; { @@ -278639,7 +348192,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; @@ -278665,31 +348218,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; @@ -278705,125 +348254,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; @@ -278838,47 +348341,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:*/ { @@ -278888,9 +348375,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); @@ -278907,7 +348394,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; } @@ -278975,7 +348462,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; @@ -278987,12 +348474,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); @@ -279002,41 +348487,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; @@ -279052,130 +348531,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; @@ -279190,60 +348625,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:*/ { @@ -279253,7 +348673,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:*/ { @@ -279266,19 +348686,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; { @@ -279287,7 +348697,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); @@ -279391,110 +348801,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; @@ -279502,29 +348878,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; @@ -279540,84 +348914,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; @@ -279634,7 +348989,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:*/ { @@ -279657,59 +349016,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; @@ -279717,29 +349057,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; @@ -279755,84 +349093,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; @@ -279849,7 +349168,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:*/ { @@ -279872,59 +349195,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; @@ -279932,33 +349236,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; @@ -279975,7 +349276,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:*/ { @@ -279998,71 +349303,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; @@ -280073,12 +349359,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; @@ -280090,15 +349376,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 @@ -280124,16 +349410,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -280150,18 +349436,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; { @@ -280175,7 +349461,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); @@ -280218,7 +349504,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; @@ -280240,7 +349526,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:; @@ -280253,19 +349539,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; { @@ -280279,7 +349565,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; @@ -280305,33 +349591,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; @@ -280347,153 +349627,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; @@ -280508,47 +349714,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:*/ { @@ -280558,9 +349748,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); @@ -280577,7 +349767,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; } @@ -280645,7 +349835,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; @@ -280657,12 +349847,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); @@ -280672,43 +349860,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; @@ -280724,157 +349904,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 @@ -280891,59 +349997,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:*/ { @@ -280953,7 +350041,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:*/ { @@ -280966,19 +350054,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; { @@ -280987,7 +350065,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); @@ -281091,82 +350169,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; @@ -281174,22 +350207,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); @@ -281202,29 +350229,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; @@ -281240,84 +350265,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; @@ -281334,7 +350338,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:*/ { @@ -281362,54 +350366,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; @@ -281417,29 +350401,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; @@ -281455,84 +350437,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; @@ -281549,7 +350510,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:*/ { @@ -281577,54 +350538,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; @@ -281632,33 +350573,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; @@ -281675,7 +350611,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:*/ { @@ -281703,66 +350639,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; @@ -281773,12 +350689,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; @@ -281790,15 +350706,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 @@ -281824,16 +350740,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -281850,18 +350766,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; { @@ -281875,7 +350791,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); @@ -281918,7 +350834,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; @@ -281940,7 +350856,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:; @@ -281953,19 +350869,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; { @@ -281979,7 +350895,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; @@ -282005,14 +350921,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 @@ -282043,59 +350959,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) { @@ -282106,13 +351022,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; @@ -282128,31 +351044,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:*/ { @@ -282162,9 +351078,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); @@ -282181,7 +351097,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; } @@ -282249,7 +351165,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; @@ -282261,7 +351177,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); @@ -282280,16 +351196,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 @@ -282320,59 +351236,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) { @@ -282383,7 +351299,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; @@ -282393,8 +351309,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 @@ -282416,36 +351332,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:*/ { @@ -282455,7 +351371,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:*/ { @@ -282468,7 +351384,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; @@ -282479,7 +351395,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); @@ -282583,27 +351499,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; @@ -282621,7 +351537,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); @@ -282643,15 +351559,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 @@ -282681,43 +351597,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) { @@ -282728,7 +351644,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; @@ -282752,7 +351668,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:*/ { @@ -282780,13 +351696,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; @@ -282803,7 +351719,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:; @@ -282815,15 +351731,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 @@ -282853,43 +351769,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) { @@ -282900,7 +351816,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; @@ -282924,7 +351840,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:*/ { @@ -282952,13 +351868,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; @@ -282975,7 +351891,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:; @@ -282987,21 +351903,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; @@ -283025,7 +351941,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:*/ { @@ -283053,13 +351969,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; @@ -283076,7 +351992,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:; @@ -283087,12 +352003,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; @@ -283103,12 +352019,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; @@ -283120,15 +352036,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 @@ -283154,16 +352070,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -283180,18 +352096,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; { @@ -283205,7 +352121,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); @@ -283248,7 +352164,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; @@ -283270,7 +352186,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:; @@ -283283,19 +352199,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; { @@ -283309,7 +352225,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; @@ -283335,22 +352251,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 @@ -283371,78 +352287,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; @@ -283458,31 +352365,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:*/ { @@ -283492,9 +352407,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); @@ -283511,7 +352426,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; } @@ -283579,7 +352494,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; @@ -283591,10 +352506,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); @@ -283610,24 +352526,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 @@ -283648,73 +352564,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; @@ -283723,8 +352630,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 @@ -283746,36 +352653,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:*/ { @@ -283785,7 +352700,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:*/ { @@ -283798,7 +352713,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; @@ -283809,7 +352724,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); @@ -283913,27 +352828,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; @@ -283951,10 +352869,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); @@ -283973,27 +352892,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; @@ -284009,56 +352929,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; @@ -284082,7 +353010,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:*/ { @@ -284110,13 +353038,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; @@ -284133,7 +353061,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:; @@ -284145,27 +353073,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; @@ -284181,56 +353110,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; @@ -284254,7 +353191,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:*/ { @@ -284282,13 +353219,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; @@ -284305,7 +353242,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:; @@ -284317,21 +353254,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; @@ -284355,7 +353292,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:*/ { @@ -284383,13 +353320,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; @@ -284406,7 +353343,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:; @@ -284417,12 +353354,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; @@ -284433,12 +353370,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; @@ -284450,15 +353387,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 @@ -284484,16 +353421,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -284510,18 +353447,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; { @@ -284535,7 +353472,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); @@ -284578,7 +353515,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; @@ -284600,7 +353537,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:; @@ -284613,19 +353550,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; { @@ -284639,7 +353576,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; @@ -284665,27 +353602,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; @@ -284701,61 +353641,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) { @@ -284766,13 +353727,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; @@ -284788,31 +353752,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:*/ { @@ -284822,9 +353810,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); @@ -284841,7 +353829,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; } @@ -284909,7 +353897,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; @@ -284921,10 +353909,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); @@ -284940,29 +353931,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; @@ -284978,61 +353972,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) { @@ -285043,8 +354058,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; @@ -285053,8 +354071,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 @@ -285076,36 +354094,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:*/ { @@ -285115,7 +354157,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:*/ { @@ -285128,7 +354170,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; @@ -285139,7 +354181,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); @@ -285243,27 +354285,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; @@ -285281,10 +354332,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); @@ -285303,27 +354357,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; @@ -285339,56 +354396,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; @@ -285412,7 +354493,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:*/ { @@ -285440,13 +354521,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; @@ -285463,7 +354544,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:; @@ -285475,27 +354556,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; @@ -285511,56 +354595,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; @@ -285584,7 +354692,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:*/ { @@ -285612,13 +354720,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; @@ -285635,7 +354743,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:; @@ -285647,21 +354755,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; @@ -285685,7 +354793,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:*/ { @@ -285713,13 +354821,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; @@ -285736,7 +354844,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:; @@ -285747,12 +354855,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; @@ -285763,12 +354871,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; @@ -285780,15 +354888,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 @@ -285814,16 +354922,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -285840,18 +354948,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; { @@ -285865,7 +354973,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); @@ -285908,7 +355016,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; @@ -285930,7 +355038,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:; @@ -285943,19 +355051,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; { @@ -285969,7 +355077,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; @@ -285995,14 +355103,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 @@ -286033,59 +355141,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) { @@ -286096,13 +355204,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; @@ -286118,31 +355226,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:*/ { @@ -286152,9 +355260,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); @@ -286171,7 +355279,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; } @@ -286239,7 +355347,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; @@ -286251,7 +355359,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); @@ -286270,16 +355378,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 @@ -286310,59 +355418,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) { @@ -286373,7 +355481,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; @@ -286383,8 +355491,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 @@ -286406,36 +355514,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:*/ { @@ -286445,7 +355553,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:*/ { @@ -286458,7 +355566,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; @@ -286469,7 +355577,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); @@ -286573,27 +355681,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; @@ -286611,7 +355719,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); @@ -286633,15 +355741,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 @@ -286671,43 +355779,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) { @@ -286718,7 +355826,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; @@ -286742,7 +355850,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:*/ { @@ -286770,13 +355878,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; @@ -286793,7 +355901,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:; @@ -286805,15 +355913,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 @@ -286843,43 +355951,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) { @@ -286890,7 +355998,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; @@ -286914,7 +356022,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:*/ { @@ -286942,13 +356050,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; @@ -286965,7 +356073,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:; @@ -286977,21 +356085,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; @@ -287015,7 +356123,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:*/ { @@ -287043,13 +356151,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; @@ -287066,7 +356174,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:; @@ -287077,12 +356185,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; @@ -287093,12 +356201,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; @@ -287110,15 +356218,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 @@ -287144,16 +356252,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -287170,18 +356278,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; { @@ -287195,7 +356303,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); @@ -287238,7 +356346,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; @@ -287260,7 +356368,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:; @@ -287273,19 +356381,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; { @@ -287299,7 +356407,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; @@ -287325,26 +356433,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; @@ -287360,61 +356470,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; @@ -287430,31 +356565,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:*/ { @@ -287464,9 +356607,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); @@ -287483,7 +356626,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; } @@ -287551,7 +356694,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; @@ -287563,10 +356706,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); @@ -287582,28 +356726,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; @@ -287619,56 +356765,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; @@ -287677,8 +356848,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 @@ -287700,36 +356871,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:*/ { @@ -287739,7 +356918,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:*/ { @@ -287752,7 +356931,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; @@ -287763,7 +356942,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); @@ -287867,27 +357046,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; @@ -287905,10 +357087,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); @@ -287927,27 +357110,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; @@ -287963,56 +357147,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; @@ -288036,7 +357228,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:*/ { @@ -288064,13 +357256,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; @@ -288087,7 +357279,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:; @@ -288099,27 +357291,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; @@ -288135,56 +357328,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; @@ -288208,7 +357409,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:*/ { @@ -288236,13 +357437,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; @@ -288259,7 +357460,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:; @@ -288271,21 +357472,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; @@ -288309,7 +357510,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:*/ { @@ -288337,13 +357538,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; @@ -288360,7 +357561,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:; @@ -288371,12 +357572,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; @@ -288387,12 +357588,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; @@ -288404,15 +357605,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 @@ -288438,16 +357639,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -288464,18 +357665,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; { @@ -288489,7 +357690,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); @@ -288532,7 +357733,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; @@ -288554,7 +357755,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:; @@ -288567,19 +357768,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; { @@ -288593,7 +357794,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; @@ -288619,14 +357820,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 @@ -288634,11 +357835,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; @@ -288654,61 +357856,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; @@ -288724,31 +357943,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:*/ { @@ -288758,9 +357977,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); @@ -288777,7 +357996,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; } @@ -288845,7 +358064,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; @@ -288857,7 +358076,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); @@ -288876,16 +358095,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 @@ -288893,11 +358112,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; @@ -288913,55 +358133,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; @@ -288971,8 +358208,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 @@ -288994,36 +358231,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:*/ { @@ -289033,7 +358270,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:*/ { @@ -289046,7 +358283,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; @@ -289057,7 +358294,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); @@ -289161,27 +358398,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; @@ -289199,7 +358436,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); @@ -289221,15 +358458,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 @@ -289259,43 +358496,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) { @@ -289306,7 +358543,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; @@ -289330,7 +358567,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:*/ { @@ -289358,13 +358595,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; @@ -289381,7 +358618,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:; @@ -289393,15 +358630,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 @@ -289431,43 +358668,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) { @@ -289478,7 +358715,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; @@ -289502,7 +358739,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:*/ { @@ -289530,13 +358767,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; @@ -289553,7 +358790,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:; @@ -289565,21 +358802,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; @@ -289603,7 +358840,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:*/ { @@ -289631,13 +358868,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; @@ -289654,7 +358891,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:; @@ -289665,12 +358902,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; @@ -289681,12 +358918,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; @@ -289698,15 +358935,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 @@ -289732,16 +358969,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -289758,18 +358995,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; { @@ -289783,7 +359020,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); @@ -289826,7 +359063,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; @@ -289848,7 +359085,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:; @@ -289861,19 +359098,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; { @@ -289887,7 +359124,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; @@ -289913,14 +359150,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 @@ -289929,12 +359166,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; @@ -289950,93 +359186,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; @@ -290051,31 +359273,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:*/ { @@ -290085,9 +359307,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); @@ -290104,7 +359326,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; } @@ -290172,7 +359394,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; @@ -290184,7 +359406,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); @@ -290203,16 +359425,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 @@ -290221,12 +359443,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; @@ -290242,98 +359463,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; @@ -290348,42 +359557,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:*/ { @@ -290393,7 +359605,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:*/ { @@ -290406,9 +359618,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; { @@ -290417,7 +359629,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); @@ -290521,28 +359733,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; { @@ -290558,8 +359785,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); @@ -290568,12 +359795,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; @@ -290581,15 +359810,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 @@ -290619,43 +359848,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) { @@ -290666,14 +359895,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; @@ -290690,7 +359921,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:*/ { @@ -290713,39 +359948,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; @@ -290753,15 +359989,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 @@ -290791,43 +360027,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) { @@ -290838,14 +360074,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; @@ -290862,7 +360100,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:*/ { @@ -290885,39 +360127,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; @@ -290925,28 +360168,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; @@ -290963,7 +360208,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:*/ { @@ -290986,51 +360235,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; @@ -291041,12 +360291,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; @@ -291058,15 +360308,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 @@ -291092,16 +360342,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -291118,18 +360368,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; { @@ -291143,7 +360393,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); @@ -291186,7 +360436,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; @@ -291208,7 +360458,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:; @@ -291221,19 +360471,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; { @@ -291247,7 +360497,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; @@ -291273,14 +360523,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 @@ -291288,14 +360538,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; @@ -291311,109 +360559,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; @@ -291428,31 +360647,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:*/ { @@ -291462,9 +360681,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); @@ -291481,7 +360700,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; } @@ -291549,7 +360768,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; @@ -291561,7 +360780,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); @@ -291575,23 +360794,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 @@ -291599,14 +360817,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; @@ -291622,113 +360838,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 @@ -291746,42 +360933,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:*/ { @@ -291791,7 +360977,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:*/ { @@ -291804,19 +360990,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; { @@ -291825,7 +361006,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); @@ -291929,64 +361110,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; @@ -291995,8 +361165,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); @@ -292005,9 +361174,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); @@ -292020,15 +361188,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 @@ -292058,43 +361226,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) { @@ -292105,10 +361273,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 @@ -292117,7 +361284,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; @@ -292134,7 +361300,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:*/ { @@ -292162,38 +361328,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; @@ -292202,14 +361363,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; @@ -292217,15 +361376,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 @@ -292255,43 +361414,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) { @@ -292302,10 +361461,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 @@ -292314,7 +361472,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; @@ -292331,7 +361488,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:*/ { @@ -292359,38 +361516,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; @@ -292399,14 +361551,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; @@ -292414,24 +361564,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 @@ -292440,7 +361589,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; @@ -292457,7 +361605,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:*/ { @@ -292485,38 +361633,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; @@ -292525,26 +361668,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; @@ -292555,12 +361696,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; @@ -292572,15 +361713,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 @@ -292606,16 +361747,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -292632,18 +361773,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; { @@ -292657,7 +361798,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); @@ -292700,7 +361841,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; @@ -292722,7 +361863,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:; @@ -292735,19 +361876,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; { @@ -292761,7 +361902,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; @@ -292787,14 +361928,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 @@ -292802,17 +361943,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; @@ -292828,151 +361964,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; @@ -292987,31 +362052,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:*/ { @@ -293021,9 +362086,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); @@ -293040,7 +362105,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; } @@ -293108,7 +362173,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; @@ -293120,7 +362185,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); @@ -293134,23 +362199,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 @@ -293158,17 +362222,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; @@ -293184,156 +362243,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; @@ -293348,44 +362339,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:*/ { @@ -293395,7 +362388,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:*/ { @@ -293408,19 +362401,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; { @@ -293429,7 +362417,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); @@ -293533,74 +362521,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); @@ -293609,14 +362615,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; @@ -293624,15 +362632,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 @@ -293662,43 +362670,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) { @@ -293709,16 +362717,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; @@ -293738,7 +362746,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:*/ { @@ -293761,32 +362773,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; { @@ -293803,11 +362810,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:; @@ -293821,15 +362827,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 @@ -293859,43 +362865,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) { @@ -293906,16 +362912,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; @@ -293935,7 +362941,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:*/ { @@ -293958,32 +362968,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; { @@ -294000,11 +363005,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:; @@ -294018,30 +363022,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; @@ -294061,7 +363065,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:*/ { @@ -294084,32 +363092,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; { @@ -294126,11 +363129,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:; @@ -294143,12 +363145,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; @@ -294159,12 +363161,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; @@ -294176,15 +363178,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 @@ -294210,16 +363212,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -294236,18 +363238,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; { @@ -294261,7 +363263,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); @@ -294304,7 +363306,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; @@ -294326,7 +363328,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:; @@ -294339,19 +363341,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; { @@ -294365,7 +363367,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; @@ -294391,27 +363393,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; @@ -294427,61 +363431,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) { @@ -294492,16 +363510,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; @@ -294516,31 +363534,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:*/ { @@ -294550,9 +363584,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); @@ -294569,7 +363603,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; } @@ -294637,7 +363671,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; @@ -294649,10 +363683,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); @@ -294662,37 +363698,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; @@ -294708,61 +363744,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) { @@ -294773,20 +363823,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 @@ -294803,43 +363853,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:*/ { @@ -294849,7 +363913,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:*/ { @@ -294862,19 +363926,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; { @@ -294883,7 +363937,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); @@ -294987,64 +364041,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; @@ -295052,20 +364085,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); @@ -295078,27 +364109,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; @@ -295114,68 +364147,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; @@ -295192,7 +364236,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:*/ { @@ -295220,54 +364264,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; @@ -295275,27 +364299,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; @@ -295311,68 +364337,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; @@ -295389,7 +364426,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:*/ { @@ -295417,54 +364454,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; @@ -295472,33 +364489,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; @@ -295515,7 +364527,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:*/ { @@ -295543,66 +364555,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; @@ -295613,12 +364605,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; @@ -295630,15 +364622,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 @@ -295664,16 +364656,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -295690,18 +364682,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; { @@ -295715,7 +364707,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); @@ -295758,7 +364750,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; @@ -295780,7 +364772,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:; @@ -295793,19 +364785,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; { @@ -295819,7 +364811,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; @@ -295845,23 +364837,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 @@ -295882,94 +364874,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; @@ -295984,31 +364969,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:*/ { @@ -296018,9 +365011,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); @@ -296037,7 +365030,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; } @@ -296105,7 +365098,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; @@ -296117,10 +365110,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); @@ -296130,32 +365124,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 @@ -296176,98 +365169,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 @@ -296284,42 +365270,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:*/ { @@ -296329,7 +365322,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:*/ { @@ -296342,14 +365335,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; { @@ -296358,7 +365346,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); @@ -296462,53 +365450,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; @@ -296516,18 +365491,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); @@ -296540,27 +365514,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; @@ -296576,66 +365551,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; @@ -296652,7 +365632,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:*/ { @@ -296680,47 +365660,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; @@ -296728,27 +365695,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; @@ -296764,66 +365732,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; @@ -296840,7 +365813,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:*/ { @@ -296868,47 +365841,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; @@ -296916,31 +365876,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; @@ -296957,7 +365914,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:*/ { @@ -296985,59 +365942,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; @@ -297048,12 +365992,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; @@ -297065,15 +366009,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 @@ -297099,16 +366043,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -297125,18 +366069,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; { @@ -297150,7 +366094,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); @@ -297193,7 +366137,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; @@ -297215,7 +366159,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:; @@ -297228,19 +366172,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; { @@ -297254,7 +366198,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; @@ -297280,28 +366224,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; @@ -297317,77 +366260,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; @@ -297403,47 +366347,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:*/ { @@ -297453,9 +366381,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); @@ -297472,7 +366400,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; } @@ -297540,7 +366468,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; @@ -297552,12 +366480,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); @@ -297573,30 +366499,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; @@ -297612,72 +366537,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; @@ -297686,8 +366612,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 @@ -297709,52 +366635,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:*/ { @@ -297764,7 +366674,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:*/ { @@ -297777,7 +366687,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; @@ -297788,7 +366698,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); @@ -297892,33 +366802,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; @@ -297936,12 +366840,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); @@ -297960,29 +366862,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; @@ -297998,72 +366898,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; @@ -298087,7 +366971,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:*/ { @@ -298115,13 +366999,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; @@ -298138,7 +367022,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:; @@ -298150,29 +367034,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; @@ -298188,72 +367070,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; @@ -298277,7 +367143,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:*/ { @@ -298305,13 +367171,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; @@ -298328,7 +367194,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:; @@ -298340,21 +367206,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; @@ -298378,7 +367244,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:*/ { @@ -298406,13 +367272,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; @@ -298429,7 +367295,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:; @@ -298440,12 +367306,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; @@ -298456,12 +367322,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; @@ -298473,15 +367339,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 @@ -298507,16 +367373,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -298533,18 +367399,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; { @@ -298558,7 +367424,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); @@ -298601,7 +367467,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; @@ -298623,7 +367489,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:; @@ -298636,19 +367502,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; { @@ -298662,7 +367528,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; @@ -298688,29 +367554,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; @@ -298726,100 +367590,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; @@ -298835,39 +367668,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:*/ { @@ -298877,9 +367710,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); @@ -298896,7 +367729,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; } @@ -298964,7 +367797,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; @@ -298976,11 +367809,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); @@ -298996,31 +367829,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; @@ -299036,95 +367867,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; @@ -299133,8 +367933,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 @@ -299156,44 +367956,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:*/ { @@ -299203,7 +368003,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:*/ { @@ -299216,7 +368016,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; @@ -299227,7 +368027,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); @@ -299331,30 +368131,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; @@ -299372,11 +368172,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); @@ -299395,23 +368195,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 @@ -299432,52 +368232,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) { @@ -299489,7 +368289,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; @@ -299513,7 +368313,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:*/ { @@ -299541,13 +368341,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; @@ -299564,7 +368364,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:; @@ -299576,23 +368376,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 @@ -299613,52 +368413,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) { @@ -299670,7 +368470,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; @@ -299694,7 +368494,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:*/ { @@ -299722,13 +368522,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; @@ -299745,7 +368545,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:; @@ -299757,21 +368557,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; @@ -299795,7 +368595,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:*/ { @@ -299823,13 +368623,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; @@ -299846,7 +368646,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:; @@ -299857,12 +368657,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; @@ -299873,12 +368673,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; @@ -299890,15 +368690,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 @@ -299924,16 +368724,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -299950,18 +368750,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; { @@ -299975,7 +368775,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); @@ -300018,7 +368818,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; @@ -300040,7 +368840,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:; @@ -300053,19 +368853,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; { @@ -300079,7 +368879,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; @@ -300105,30 +368905,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; @@ -300144,114 +368943,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; @@ -300267,39 +369046,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:*/ { @@ -300309,9 +369096,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); @@ -300328,7 +369115,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; } @@ -300396,7 +369183,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; @@ -300408,11 +369195,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); @@ -300428,32 +369216,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; @@ -300469,109 +369256,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; @@ -300580,8 +369347,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 @@ -300603,44 +369370,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:*/ { @@ -300650,7 +369425,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:*/ { @@ -300663,7 +369438,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; @@ -300674,7 +369449,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); @@ -300778,30 +369553,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; @@ -300819,11 +369597,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); @@ -300842,28 +369621,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; @@ -300879,52 +369659,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) { @@ -300932,11 +369719,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; @@ -300960,7 +369748,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:*/ { @@ -300988,13 +369776,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; @@ -301011,7 +369799,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:; @@ -301023,28 +369811,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; @@ -301060,52 +369849,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) { @@ -301113,11 +369909,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; @@ -301141,7 +369938,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:*/ { @@ -301169,13 +369966,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; @@ -301192,7 +369989,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:; @@ -301204,21 +370001,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; @@ -301242,7 +370039,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:*/ { @@ -301270,13 +370067,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; @@ -301293,7 +370090,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:; @@ -301304,12 +370101,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; @@ -301320,12 +370117,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; @@ -301337,15 +370134,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 @@ -301371,16 +370168,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -301397,18 +370194,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; { @@ -301422,7 +370219,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); @@ -301465,7 +370262,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; @@ -301487,7 +370284,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:; @@ -301500,19 +370297,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; { @@ -301526,7 +370323,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; @@ -301552,22 +370349,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 @@ -301588,78 +370385,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; @@ -301675,31 +370463,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:*/ { @@ -301709,9 +370505,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); @@ -301728,7 +370524,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; } @@ -301796,7 +370592,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; @@ -301808,10 +370604,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); @@ -301827,24 +370624,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 @@ -301865,73 +370662,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; @@ -301940,8 +370728,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 @@ -301963,36 +370751,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:*/ { @@ -302002,7 +370798,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:*/ { @@ -302015,7 +370811,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; @@ -302026,7 +370822,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); @@ -302130,27 +370926,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; @@ -302168,10 +370967,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); @@ -302190,27 +370990,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; @@ -302226,56 +371027,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; @@ -302299,7 +371108,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:*/ { @@ -302327,13 +371136,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; @@ -302350,7 +371159,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:; @@ -302362,27 +371171,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; @@ -302398,56 +371208,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; @@ -302471,7 +371289,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:*/ { @@ -302499,13 +371317,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; @@ -302522,7 +371340,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:; @@ -302534,21 +371352,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; @@ -302572,7 +371390,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:*/ { @@ -302600,13 +371418,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; @@ -302623,7 +371441,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:; @@ -302634,12 +371452,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; @@ -302650,12 +371468,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; @@ -302667,15 +371485,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 @@ -302701,16 +371519,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -302727,18 +371545,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; { @@ -302752,7 +371570,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); @@ -302795,7 +371613,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; @@ -302817,7 +371635,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:; @@ -302830,19 +371648,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; { @@ -302856,7 +371674,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; @@ -302882,14 +371700,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 @@ -302897,7 +371715,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 @@ -302918,79 +371736,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; @@ -303005,31 +371814,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:*/ { @@ -303039,9 +371856,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); @@ -303058,7 +371875,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; } @@ -303126,7 +371943,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; @@ -303138,10 +371955,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); @@ -303157,16 +371975,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 @@ -303174,7 +371992,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 @@ -303195,86 +372013,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; @@ -303289,45 +372096,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:*/ { @@ -303337,7 +372149,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:*/ { @@ -303350,9 +372162,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; { @@ -303361,7 +372173,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); @@ -303465,43 +372277,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; { @@ -303517,24 +372317,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; @@ -303542,15 +372341,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 @@ -303558,11 +372357,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; @@ -303578,65 +372378,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; @@ -303653,11 +372459,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:*/ { @@ -303680,40 +372482,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; @@ -303721,15 +372522,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 @@ -303737,11 +372538,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; @@ -303757,65 +372559,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; @@ -303832,11 +372640,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:*/ { @@ -303859,40 +372663,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; @@ -303900,30 +372703,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; @@ -303940,11 +372741,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:*/ { @@ -303967,52 +372764,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; @@ -304023,12 +372819,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; @@ -304040,15 +372836,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 @@ -304074,16 +372870,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -304100,18 +372896,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; { @@ -304125,7 +372921,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); @@ -304168,7 +372964,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; @@ -304190,7 +372986,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:; @@ -304203,19 +372999,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; { @@ -304229,7 +373025,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; @@ -304255,27 +373051,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; @@ -304291,69 +373090,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; @@ -304369,39 +373219,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:*/ { @@ -304411,9 +373253,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); @@ -304430,7 +373272,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; } @@ -304498,7 +373340,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; @@ -304510,11 +373352,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); @@ -304530,29 +373371,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; @@ -304568,64 +373412,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; @@ -304634,8 +373529,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 @@ -304657,44 +373552,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:*/ { @@ -304704,7 +373591,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:*/ { @@ -304717,7 +373604,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; @@ -304728,7 +373615,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); @@ -304832,30 +373719,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; @@ -304873,11 +373757,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); @@ -304896,28 +373779,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; @@ -304933,64 +373815,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; @@ -305014,7 +373888,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:*/ { @@ -305042,13 +373916,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; @@ -305065,7 +373939,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:; @@ -305077,28 +373951,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; @@ -305114,64 +373987,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; @@ -305195,7 +374060,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:*/ { @@ -305223,13 +374088,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; @@ -305246,7 +374111,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:; @@ -305258,21 +374123,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; @@ -305296,7 +374161,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:*/ { @@ -305324,13 +374189,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; @@ -305347,7 +374212,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:; @@ -305358,12 +374223,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; @@ -305374,12 +374239,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; @@ -305391,15 +374256,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 @@ -305425,16 +374290,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -305451,18 +374316,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; { @@ -305476,7 +374341,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); @@ -305519,7 +374384,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; @@ -305541,7 +374406,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:; @@ -305554,19 +374419,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; { @@ -305580,7 +374445,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; @@ -305606,30 +374471,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; @@ -305645,102 +374508,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; @@ -305756,55 +374609,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:*/ { @@ -305814,9 +374643,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); @@ -305833,7 +374662,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; } @@ -305901,7 +374730,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; @@ -305913,13 +374742,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); @@ -305935,32 +374761,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; @@ -305976,97 +374800,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; @@ -306075,8 +374889,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 @@ -306098,60 +374912,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:*/ { @@ -306161,7 +374951,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:*/ { @@ -306174,7 +374964,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; @@ -306185,7 +374975,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); @@ -306289,36 +375079,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; @@ -306336,13 +375117,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); @@ -306361,30 +375139,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; @@ -306400,80 +375175,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; @@ -306497,7 +375248,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:*/ { @@ -306525,13 +375276,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; @@ -306548,7 +375299,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:; @@ -306560,30 +375311,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; @@ -306599,80 +375347,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; @@ -306696,7 +375420,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:*/ { @@ -306724,13 +375448,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; @@ -306747,7 +375471,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:; @@ -306759,21 +375483,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; @@ -306797,7 +375521,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:*/ { @@ -306825,13 +375549,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; @@ -306848,7 +375572,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:; @@ -306859,12 +375583,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; @@ -306875,12 +375599,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; @@ -306892,15 +375616,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 @@ -306926,16 +375650,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -306952,18 +375676,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; { @@ -306977,7 +375701,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); @@ -307020,7 +375744,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; @@ -307042,7 +375766,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:; @@ -307055,19 +375779,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; { @@ -307081,7 +375805,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; @@ -307107,14 +375831,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 @@ -307145,59 +375869,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) { @@ -307208,13 +375932,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; @@ -307230,31 +375954,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:*/ { @@ -307264,9 +375988,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); @@ -307283,7 +376007,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; } @@ -307351,7 +376075,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; @@ -307363,7 +376087,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); @@ -307382,16 +376106,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 @@ -307422,59 +376146,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) { @@ -307485,7 +376209,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; @@ -307495,8 +376219,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 @@ -307518,36 +376242,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:*/ { @@ -307557,7 +376281,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:*/ { @@ -307570,7 +376294,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; @@ -307581,7 +376305,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); @@ -307685,27 +376409,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; @@ -307723,7 +376447,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); @@ -307745,15 +376469,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 @@ -307783,43 +376507,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) { @@ -307830,7 +376554,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; @@ -307854,7 +376578,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:*/ { @@ -307882,13 +376606,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; @@ -307905,7 +376629,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:; @@ -307917,15 +376641,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 @@ -307955,43 +376679,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) { @@ -308002,7 +376726,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; @@ -308026,7 +376750,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:*/ { @@ -308054,13 +376778,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; @@ -308077,7 +376801,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:; @@ -308089,21 +376813,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; @@ -308127,7 +376851,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:*/ { @@ -308155,13 +376879,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; @@ -308178,7 +376902,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:; @@ -308189,12 +376913,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; @@ -308205,12 +376929,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; @@ -308222,15 +376946,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 @@ -308256,16 +376980,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -308282,18 +377006,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; { @@ -308307,7 +377031,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); @@ -308350,7 +377074,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; @@ -308372,7 +377096,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:; @@ -308385,19 +377109,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; { @@ -308411,7 +377135,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; @@ -308437,14 +377161,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 @@ -308453,12 +377177,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; @@ -308474,68 +377199,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) { @@ -308546,14 +377278,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; @@ -308569,39 +377302,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:*/ { @@ -308611,9 +377352,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); @@ -308630,7 +377371,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; } @@ -308698,7 +377439,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; @@ -308710,11 +377451,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); @@ -308730,16 +377472,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 @@ -308748,12 +377490,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; @@ -308769,68 +377512,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) { @@ -308841,9 +377591,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; @@ -308852,8 +377603,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 @@ -308875,44 +377626,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:*/ { @@ -308922,7 +377681,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:*/ { @@ -308935,7 +377694,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; @@ -308946,7 +377705,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); @@ -309050,30 +377809,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; @@ -309091,11 +377853,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); @@ -309114,15 +377877,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 @@ -309131,11 +377894,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; @@ -309151,52 +377915,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) { @@ -309204,11 +377975,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; @@ -309232,7 +378004,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:*/ { @@ -309260,13 +378032,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; @@ -309283,7 +378055,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:; @@ -309295,15 +378067,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 @@ -309312,11 +378084,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; @@ -309332,52 +378105,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) { @@ -309385,11 +378165,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; @@ -309413,7 +378194,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:*/ { @@ -309441,13 +378222,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; @@ -309464,7 +378245,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:; @@ -309476,21 +378257,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; @@ -309514,7 +378295,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:*/ { @@ -309542,13 +378323,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; @@ -309565,7 +378346,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:; @@ -309576,12 +378357,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; @@ -309592,12 +378373,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; @@ -309609,15 +378390,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 @@ -309643,16 +378424,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -309669,18 +378450,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; { @@ -309694,7 +378475,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); @@ -309737,7 +378518,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; @@ -309759,7 +378540,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:; @@ -309772,19 +378553,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; { @@ -309798,7 +378579,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; @@ -309824,27 +378605,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; @@ -309860,61 +378642,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) { @@ -309925,13 +378714,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; @@ -309947,31 +378737,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:*/ { @@ -309981,9 +378779,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); @@ -310000,7 +378798,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; } @@ -310068,7 +378866,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; @@ -310080,10 +378878,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); @@ -310099,29 +378898,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; @@ -310137,61 +378937,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) { @@ -310202,8 +379009,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; @@ -310212,8 +379020,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 @@ -310235,36 +379043,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:*/ { @@ -310274,7 +379090,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:*/ { @@ -310287,7 +379103,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; @@ -310298,7 +379114,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); @@ -310402,27 +379218,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; @@ -310440,10 +379259,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); @@ -310462,27 +379282,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; @@ -310498,56 +379319,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; @@ -310571,7 +379400,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:*/ { @@ -310599,13 +379428,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; @@ -310622,7 +379451,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:; @@ -310634,27 +379463,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; @@ -310670,56 +379500,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; @@ -310743,7 +379581,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:*/ { @@ -310771,13 +379609,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; @@ -310794,7 +379632,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:; @@ -310806,21 +379644,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; @@ -310844,7 +379682,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:*/ { @@ -310872,13 +379710,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; @@ -310895,7 +379733,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:; @@ -310906,12 +379744,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; @@ -310922,12 +379760,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; @@ -310939,15 +379777,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 @@ -310973,16 +379811,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -310999,18 +379837,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; { @@ -311024,7 +379862,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); @@ -311067,7 +379905,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; @@ -311089,7 +379927,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:; @@ -311102,19 +379940,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; { @@ -311128,7 +379966,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; @@ -311154,14 +379992,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 @@ -311169,12 +380007,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; @@ -311190,79 +380030,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; @@ -311277,31 +380145,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:*/ { @@ -311311,9 +380179,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); @@ -311330,7 +380198,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; } @@ -311398,7 +380266,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; @@ -311410,7 +380278,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); @@ -311429,16 +380297,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 @@ -311446,12 +380314,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; @@ -311467,86 +380337,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; @@ -311561,45 +380457,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:*/ { @@ -311609,7 +380502,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:*/ { @@ -311622,9 +380515,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; { @@ -311633,7 +380526,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); @@ -311737,43 +380630,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; { @@ -311789,8 +380667,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); @@ -311799,14 +380677,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; @@ -311814,15 +380690,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 @@ -311852,43 +380728,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) { @@ -311899,16 +380775,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; @@ -311925,11 +380799,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:*/ { @@ -311952,40 +380822,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; @@ -311993,15 +380862,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 @@ -312031,43 +380900,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) { @@ -312078,16 +380947,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; @@ -312104,11 +380971,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:*/ { @@ -312131,40 +380994,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; @@ -312172,30 +381034,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; @@ -312212,11 +381072,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:*/ { @@ -312239,52 +381095,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; @@ -312295,12 +381150,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; @@ -312312,15 +381167,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 @@ -312346,16 +381201,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -312372,18 +381227,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; { @@ -312397,7 +381252,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); @@ -312440,7 +381295,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; @@ -312462,7 +381317,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:; @@ -312475,19 +381330,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; { @@ -312501,7 +381356,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; @@ -312527,27 +381382,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; @@ -312563,80 +381421,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; @@ -312651,31 +381538,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:*/ { @@ -312685,9 +381588,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); @@ -312704,7 +381607,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; } @@ -312772,7 +381675,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; @@ -312784,10 +381687,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); @@ -312797,36 +381702,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; @@ -312842,84 +381749,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 @@ -312936,42 +381872,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:*/ { @@ -312981,7 +381932,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:*/ { @@ -312994,14 +381945,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; { @@ -313010,7 +381956,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); @@ -313114,53 +382060,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; @@ -313168,18 +382104,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); @@ -313192,27 +382128,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; @@ -313228,66 +382166,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; @@ -313304,7 +382255,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:*/ { @@ -313332,47 +382283,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; @@ -313380,27 +382318,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; @@ -313416,66 +382356,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; @@ -313492,7 +382445,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:*/ { @@ -313520,47 +382473,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; @@ -313568,31 +382508,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; @@ -313609,7 +382546,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:*/ { @@ -313637,59 +382574,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; @@ -313700,12 +382624,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; @@ -313717,15 +382641,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 @@ -313751,16 +382675,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -313777,18 +382701,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; { @@ -313802,7 +382726,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); @@ -313845,7 +382769,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; @@ -313867,7 +382791,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:; @@ -313880,19 +382804,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; { @@ -313906,7 +382830,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; @@ -313932,22 +382856,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 @@ -313968,80 +382892,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; @@ -314056,31 +382970,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:*/ { @@ -314090,9 +383012,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); @@ -314109,7 +383031,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; } @@ -314177,7 +383099,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; @@ -314189,10 +383111,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); @@ -314202,31 +383125,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 @@ -314247,88 +383169,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; @@ -314343,46 +383252,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:*/ { @@ -314392,7 +383305,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:*/ { @@ -314405,14 +383318,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; { @@ -314421,7 +383329,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); @@ -314525,110 +383433,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; @@ -314636,27 +383497,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; @@ -314672,68 +383534,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; @@ -314750,11 +383615,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:*/ { @@ -314777,53 +383638,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; @@ -314831,27 +383678,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; @@ -314867,68 +383715,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; @@ -314945,11 +383796,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:*/ { @@ -314972,53 +383819,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; @@ -315026,33 +383859,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; @@ -315069,11 +383897,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:*/ { @@ -315096,65 +383920,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; @@ -315165,12 +383975,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; @@ -315182,15 +383992,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 @@ -315216,16 +384026,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -315242,18 +384052,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; { @@ -315267,7 +384077,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); @@ -315310,7 +384120,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; @@ -315332,7 +384142,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:; @@ -315345,19 +384155,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; { @@ -315371,7 +384181,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; @@ -315397,24 +384207,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 @@ -315435,94 +384245,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; @@ -315538,47 +384360,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:*/ { @@ -315588,9 +384394,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); @@ -315607,7 +384413,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; } @@ -315675,7 +384481,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; @@ -315687,12 +384493,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); @@ -315708,26 +384512,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 @@ -315748,89 +384552,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; @@ -315839,8 +384655,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 @@ -315862,52 +384678,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:*/ { @@ -315917,7 +384717,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:*/ { @@ -315930,7 +384730,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; @@ -315941,7 +384741,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); @@ -316045,33 +384845,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; @@ -316089,12 +384883,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); @@ -316113,29 +384905,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; @@ -316151,72 +384941,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; @@ -316240,7 +385014,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:*/ { @@ -316268,13 +385042,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; @@ -316291,7 +385065,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:; @@ -316303,29 +385077,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; @@ -316341,72 +385113,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; @@ -316430,7 +385186,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:*/ { @@ -316458,13 +385214,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; @@ -316481,7 +385237,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:; @@ -316493,21 +385249,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; @@ -316531,7 +385287,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:*/ { @@ -316559,13 +385315,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; @@ -316582,7 +385338,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:; @@ -316593,12 +385349,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; @@ -316609,12 +385365,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; @@ -316626,15 +385382,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 @@ -316660,16 +385416,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -316686,18 +385442,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; { @@ -316711,7 +385467,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); @@ -316754,7 +385510,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; @@ -316776,7 +385532,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:; @@ -316789,19 +385545,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; { @@ -316815,7 +385571,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; @@ -316841,28 +385597,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; @@ -316878,86 +385633,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; @@ -316973,39 +385711,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:*/ { @@ -317015,9 +385753,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); @@ -317034,7 +385772,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; } @@ -317102,7 +385840,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; @@ -317114,11 +385852,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); @@ -317134,30 +385872,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; @@ -317173,81 +385910,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; @@ -317256,8 +385976,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 @@ -317279,44 +385999,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:*/ { @@ -317326,7 +386046,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:*/ { @@ -317339,7 +386059,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; @@ -317350,7 +386070,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); @@ -317454,30 +386174,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; @@ -317495,11 +386215,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); @@ -317518,23 +386238,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 @@ -317555,52 +386275,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) { @@ -317612,7 +386332,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; @@ -317636,7 +386356,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:*/ { @@ -317664,13 +386384,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; @@ -317687,7 +386407,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:; @@ -317699,23 +386419,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 @@ -317736,52 +386456,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) { @@ -317793,7 +386513,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; @@ -317817,7 +386537,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:*/ { @@ -317845,13 +386565,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; @@ -317868,7 +386588,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:; @@ -317880,21 +386600,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; @@ -317918,7 +386638,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:*/ { @@ -317946,13 +386666,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; @@ -317969,7 +386689,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:; @@ -317980,12 +386700,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; @@ -317996,12 +386716,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; @@ -318013,15 +386733,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 @@ -318047,16 +386767,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -318073,18 +386793,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; { @@ -318098,7 +386818,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); @@ -318141,7 +386861,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; @@ -318163,7 +386883,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:; @@ -318176,19 +386896,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; { @@ -318202,7 +386922,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; @@ -318228,27 +386948,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; @@ -318264,61 +386985,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) { @@ -318329,13 +387057,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; @@ -318351,31 +387080,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:*/ { @@ -318385,9 +387122,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); @@ -318404,7 +387141,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; } @@ -318472,7 +387209,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; @@ -318484,10 +387221,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); @@ -318503,29 +387241,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; @@ -318541,61 +387280,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) { @@ -318606,8 +387352,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; @@ -318616,8 +387363,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 @@ -318639,36 +387386,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:*/ { @@ -318678,7 +387433,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:*/ { @@ -318691,7 +387446,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; @@ -318702,7 +387457,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); @@ -318806,27 +387561,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; @@ -318844,10 +387602,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); @@ -318866,27 +387625,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; @@ -318902,56 +387662,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; @@ -318975,7 +387743,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:*/ { @@ -319003,13 +387771,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; @@ -319026,7 +387794,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:; @@ -319038,27 +387806,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; @@ -319074,56 +387843,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; @@ -319147,7 +387924,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:*/ { @@ -319175,13 +387952,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; @@ -319198,7 +387975,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:; @@ -319210,21 +387987,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; @@ -319248,7 +388025,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:*/ { @@ -319276,13 +388053,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; @@ -319299,7 +388076,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:; @@ -319310,12 +388087,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; @@ -319326,12 +388103,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; @@ -319343,15 +388120,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 @@ -319377,16 +388154,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -319403,18 +388180,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; { @@ -319428,7 +388205,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); @@ -319471,7 +388248,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; @@ -319493,7 +388270,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:; @@ -319506,19 +388283,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; { @@ -319532,7 +388309,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; @@ -319558,22 +388335,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 @@ -319594,69 +388371,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; @@ -319672,39 +388458,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:*/ { @@ -319714,9 +388492,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); @@ -319733,7 +388511,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; } @@ -319801,7 +388579,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; @@ -319813,11 +388591,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); @@ -319833,24 +388610,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 @@ -319871,64 +388648,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; @@ -319937,8 +388723,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 @@ -319960,44 +388746,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:*/ { @@ -320007,7 +388785,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:*/ { @@ -320020,7 +388798,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; @@ -320031,7 +388809,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); @@ -320135,30 +388913,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; @@ -320176,11 +388951,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); @@ -320199,28 +388973,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; @@ -320236,64 +389009,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; @@ -320317,7 +389082,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:*/ { @@ -320345,13 +389110,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; @@ -320368,7 +389133,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:; @@ -320380,28 +389145,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; @@ -320417,64 +389181,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; @@ -320498,7 +389254,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:*/ { @@ -320526,13 +389282,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; @@ -320549,7 +389305,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:; @@ -320561,21 +389317,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; @@ -320599,7 +389355,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:*/ { @@ -320627,13 +389383,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; @@ -320650,7 +389406,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:; @@ -320661,12 +389417,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; @@ -320677,12 +389433,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; @@ -320694,15 +389450,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 @@ -320728,16 +389484,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -320754,18 +389510,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; { @@ -320779,7 +389535,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); @@ -320822,7 +389578,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; @@ -320844,7 +389600,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:; @@ -320857,19 +389613,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; { @@ -320883,7 +389639,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; @@ -320909,29 +389665,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; @@ -320947,75 +389701,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) { @@ -321026,15 +389766,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; @@ -321050,47 +389788,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:*/ { @@ -321100,9 +389822,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); @@ -321119,7 +389841,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; } @@ -321187,7 +389909,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; @@ -321199,12 +389921,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); @@ -321220,31 +389940,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; @@ -321260,75 +389978,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) { @@ -321339,10 +390043,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; @@ -321351,8 +390053,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 @@ -321374,52 +390076,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:*/ { @@ -321429,7 +390115,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:*/ { @@ -321442,7 +390128,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; @@ -321453,7 +390139,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); @@ -321557,33 +390243,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; @@ -321601,12 +390281,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); @@ -321625,29 +390303,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; @@ -321663,72 +390339,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; @@ -321752,7 +390412,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:*/ { @@ -321780,13 +390440,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; @@ -321803,7 +390463,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:; @@ -321815,29 +390475,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; @@ -321853,72 +390511,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; @@ -321942,7 +390584,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:*/ { @@ -321970,13 +390612,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; @@ -321993,7 +390635,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:; @@ -322005,21 +390647,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; @@ -322043,7 +390685,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:*/ { @@ -322071,13 +390713,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; @@ -322094,7 +390736,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:; @@ -322105,12 +390747,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; @@ -322121,12 +390763,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; @@ -322138,15 +390780,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 @@ -322172,16 +390814,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -322198,18 +390840,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; { @@ -322223,7 +390865,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); @@ -322266,7 +390908,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; @@ -322288,7 +390930,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:; @@ -322301,19 +390943,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; { @@ -322327,7 +390969,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; @@ -322353,22 +390995,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 @@ -322389,69 +391031,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; @@ -322467,39 +391118,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:*/ { @@ -322509,9 +391152,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); @@ -322528,7 +391171,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; } @@ -322596,7 +391239,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; @@ -322608,11 +391251,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); @@ -322628,24 +391270,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 @@ -322666,64 +391308,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; @@ -322732,8 +391383,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 @@ -322755,44 +391406,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:*/ { @@ -322802,7 +391445,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:*/ { @@ -322815,7 +391458,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; @@ -322826,7 +391469,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); @@ -322930,30 +391573,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; @@ -322971,11 +391611,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); @@ -322994,28 +391633,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; @@ -323031,64 +391669,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; @@ -323112,7 +391742,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:*/ { @@ -323140,13 +391770,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; @@ -323163,7 +391793,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:; @@ -323175,28 +391805,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; @@ -323212,64 +391841,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; @@ -323293,7 +391914,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:*/ { @@ -323321,13 +391942,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; @@ -323344,7 +391965,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:; @@ -323356,21 +391977,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; @@ -323394,7 +392015,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:*/ { @@ -323422,13 +392043,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; @@ -323445,7 +392066,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:; @@ -323456,12 +392077,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; @@ -323472,12 +392093,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; @@ -323489,15 +392110,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 @@ -323523,16 +392144,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -323549,18 +392170,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; { @@ -323574,7 +392195,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); @@ -323617,7 +392238,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; @@ -323639,7 +392260,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:; @@ -323652,19 +392273,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; { @@ -323678,7 +392299,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; @@ -323704,14 +392325,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 @@ -323719,7 +392340,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 @@ -323740,69 +392361,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; @@ -323818,39 +392448,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:*/ { @@ -323860,9 +392482,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); @@ -323879,7 +392501,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; } @@ -323947,7 +392569,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; @@ -323959,11 +392581,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); @@ -323979,16 +392600,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 @@ -323996,7 +392617,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 @@ -324017,64 +392638,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; @@ -324083,8 +392713,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 @@ -324106,44 +392736,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:*/ { @@ -324153,7 +392775,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:*/ { @@ -324166,7 +392788,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; @@ -324177,7 +392799,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); @@ -324281,30 +392903,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; @@ -324322,11 +392941,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); @@ -324345,15 +392963,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 @@ -324361,12 +392979,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; @@ -324382,64 +392999,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; @@ -324463,7 +393072,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:*/ { @@ -324491,13 +393100,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; @@ -324514,7 +393123,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:; @@ -324526,15 +393135,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 @@ -324542,12 +393151,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; @@ -324563,64 +393171,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; @@ -324644,7 +393244,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:*/ { @@ -324672,13 +393272,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; @@ -324695,7 +393295,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:; @@ -324707,21 +393307,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; @@ -324745,7 +393345,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:*/ { @@ -324773,13 +393373,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; @@ -324796,7 +393396,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:; @@ -324807,12 +393407,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; @@ -324823,12 +393423,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; @@ -324840,15 +393440,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 @@ -324874,16 +393474,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -324900,18 +393500,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; { @@ -324925,7 +393525,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); @@ -324968,7 +393568,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; @@ -324990,7 +393590,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:; @@ -325003,19 +393603,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; { @@ -325029,7 +393629,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; @@ -325055,14 +393655,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 @@ -325071,12 +393671,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; @@ -325092,92 +393691,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; @@ -325193,31 +393778,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:*/ { @@ -325227,9 +393812,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); @@ -325246,7 +393831,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; } @@ -325314,7 +393899,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; @@ -325326,7 +393911,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); @@ -325345,16 +393930,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 @@ -325363,12 +393948,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; @@ -325384,86 +393968,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; @@ -325473,8 +394043,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 @@ -325496,36 +394066,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:*/ { @@ -325535,7 +394105,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:*/ { @@ -325548,7 +394118,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; @@ -325559,7 +394129,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); @@ -325663,27 +394233,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; @@ -325701,7 +394271,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); @@ -325723,15 +394293,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 @@ -325761,43 +394331,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) { @@ -325808,7 +394378,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; @@ -325832,7 +394402,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:*/ { @@ -325860,13 +394430,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; @@ -325883,7 +394453,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:; @@ -325895,15 +394465,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 @@ -325933,43 +394503,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) { @@ -325980,7 +394550,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; @@ -326004,7 +394574,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:*/ { @@ -326032,13 +394602,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; @@ -326055,7 +394625,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:; @@ -326067,21 +394637,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; @@ -326105,7 +394675,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:*/ { @@ -326133,13 +394703,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; @@ -326156,7 +394726,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:; @@ -326167,12 +394737,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; @@ -326183,12 +394753,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; @@ -326200,15 +394770,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 @@ -326234,16 +394804,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -326260,18 +394830,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; { @@ -326285,7 +394855,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); @@ -326328,7 +394898,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; @@ -326350,7 +394920,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:; @@ -326363,19 +394933,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; { @@ -326389,7 +394959,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; @@ -326415,27 +394985,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; @@ -326451,78 +395025,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; @@ -326538,31 +395150,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:*/ { @@ -326572,9 +395208,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); @@ -326591,7 +395227,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; } @@ -326659,7 +395295,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; @@ -326671,10 +395307,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); @@ -326690,29 +395329,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; @@ -326728,73 +395371,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; @@ -326803,8 +395484,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 @@ -326826,36 +395507,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:*/ { @@ -326865,7 +395570,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:*/ { @@ -326878,7 +395583,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; @@ -326889,7 +395594,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); @@ -326993,27 +395698,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; @@ -327031,10 +395745,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); @@ -327053,27 +395770,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; @@ -327089,56 +395809,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; @@ -327162,7 +395906,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:*/ { @@ -327190,13 +395934,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; @@ -327213,7 +395957,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:; @@ -327225,27 +395969,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; @@ -327261,56 +396008,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; @@ -327334,7 +396105,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:*/ { @@ -327362,13 +396133,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; @@ -327385,7 +396156,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:; @@ -327397,21 +396168,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; @@ -327435,7 +396206,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:*/ { @@ -327463,13 +396234,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; @@ -327486,7 +396257,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:; @@ -327497,12 +396268,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; @@ -327513,12 +396284,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; @@ -327530,15 +396301,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 @@ -327564,16 +396335,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -327590,18 +396361,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; { @@ -327615,7 +396386,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); @@ -327658,7 +396429,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; @@ -327680,7 +396451,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:; @@ -327693,19 +396464,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; { @@ -327719,7 +396490,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; @@ -327745,29 +396516,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; @@ -327783,75 +396552,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) { @@ -327862,15 +396617,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; @@ -327886,47 +396639,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:*/ { @@ -327936,9 +396673,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); @@ -327955,7 +396692,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; } @@ -328023,7 +396760,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; @@ -328035,12 +396772,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); @@ -328056,31 +396791,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; @@ -328096,75 +396829,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) { @@ -328175,10 +396894,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; @@ -328187,8 +396904,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 @@ -328210,52 +396927,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:*/ { @@ -328265,7 +396966,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:*/ { @@ -328278,7 +396979,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; @@ -328289,7 +396990,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); @@ -328393,33 +397094,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; @@ -328437,12 +397132,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); @@ -328461,29 +397154,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; @@ -328499,72 +397190,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; @@ -328588,7 +397263,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:*/ { @@ -328616,13 +397291,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; @@ -328639,7 +397314,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:; @@ -328651,29 +397326,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; @@ -328689,72 +397362,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; @@ -328778,7 +397435,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:*/ { @@ -328806,13 +397463,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; @@ -328829,7 +397486,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:; @@ -328841,21 +397498,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; @@ -328879,7 +397536,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:*/ { @@ -328907,13 +397564,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; @@ -328930,7 +397587,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:; @@ -328941,12 +397598,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; @@ -328957,12 +397614,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; @@ -328974,15 +397631,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 @@ -329008,16 +397665,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -329034,18 +397691,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; { @@ -329059,7 +397716,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); @@ -329102,7 +397759,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; @@ -329124,7 +397781,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:; @@ -329137,19 +397794,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; { @@ -329163,7 +397820,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; @@ -329189,23 +397846,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 @@ -329226,86 +397883,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; @@ -329321,39 +397984,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:*/ { @@ -329363,9 +398018,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); @@ -329382,7 +398037,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; } @@ -329450,7 +398105,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; @@ -329462,11 +398117,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); @@ -329482,25 +398136,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 @@ -329521,81 +398175,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; @@ -329604,8 +398264,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 @@ -329627,44 +398287,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:*/ { @@ -329674,7 +398326,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:*/ { @@ -329687,7 +398339,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; @@ -329698,7 +398350,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); @@ -329802,30 +398454,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; @@ -329843,11 +398492,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); @@ -329866,28 +398514,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; @@ -329903,64 +398550,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; @@ -329984,7 +398623,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:*/ { @@ -330012,13 +398651,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; @@ -330035,7 +398674,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:; @@ -330047,28 +398686,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; @@ -330084,64 +398722,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; @@ -330165,7 +398795,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:*/ { @@ -330193,13 +398823,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; @@ -330216,7 +398846,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:; @@ -330228,21 +398858,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; @@ -330266,7 +398896,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:*/ { @@ -330294,13 +398924,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; @@ -330317,7 +398947,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:; @@ -330328,12 +398958,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; @@ -330344,12 +398974,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; @@ -330361,15 +398991,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 @@ -330395,16 +399025,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -330421,18 +399051,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; { @@ -330446,7 +399076,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); @@ -330489,7 +399119,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; @@ -330511,7 +399141,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:; @@ -330524,19 +399154,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; { @@ -330550,7 +399180,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; @@ -330576,24 +399206,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 @@ -330614,87 +399244,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) { @@ -330702,18 +399326,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; @@ -330729,31 +399353,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:*/ { @@ -330763,9 +399395,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); @@ -330782,7 +399414,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; } @@ -330850,7 +399482,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; @@ -330862,10 +399494,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); @@ -330881,26 +399514,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 @@ -330921,87 +399554,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) { @@ -331009,13 +399636,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; @@ -331024,8 +399651,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 @@ -331047,36 +399674,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:*/ { @@ -331086,7 +399721,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:*/ { @@ -331099,7 +399734,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; @@ -331110,7 +399745,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); @@ -331214,27 +399849,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; @@ -331252,10 +399890,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); @@ -331274,27 +399913,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; @@ -331310,56 +399950,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; @@ -331383,7 +400031,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:*/ { @@ -331411,13 +400059,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; @@ -331434,7 +400082,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:; @@ -331446,27 +400094,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; @@ -331482,56 +400131,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; @@ -331555,7 +400212,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:*/ { @@ -331583,13 +400240,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; @@ -331606,7 +400263,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:; @@ -331618,21 +400275,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; @@ -331656,7 +400313,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:*/ { @@ -331684,13 +400341,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; @@ -331707,7 +400364,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:; @@ -331718,12 +400375,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; @@ -331734,12 +400391,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; @@ -331751,15 +400408,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 @@ -331785,16 +400442,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -331811,18 +400468,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; { @@ -331836,7 +400493,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); @@ -331879,7 +400536,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; @@ -331901,7 +400558,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:; @@ -331914,19 +400571,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; { @@ -331940,7 +400597,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; @@ -331966,22 +400623,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 @@ -332002,69 +400659,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; @@ -332080,39 +400746,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:*/ { @@ -332122,9 +400780,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); @@ -332141,7 +400799,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; } @@ -332209,7 +400867,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; @@ -332221,10 +400879,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); @@ -332241,24 +400898,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 @@ -332279,63 +400936,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; @@ -332345,8 +401011,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 @@ -332368,44 +401034,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:*/ { @@ -332415,7 +401073,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:*/ { @@ -332428,7 +401086,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; @@ -332439,7 +401097,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); @@ -332543,30 +401201,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; @@ -332584,10 +401239,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); @@ -332607,28 +401261,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; @@ -332644,64 +401297,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; @@ -332725,7 +401370,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:*/ { @@ -332753,13 +401398,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; @@ -332776,7 +401421,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:; @@ -332788,28 +401433,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; @@ -332825,64 +401469,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; @@ -332906,7 +401542,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:*/ { @@ -332934,13 +401570,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; @@ -332957,7 +401593,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:; @@ -332969,21 +401605,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; @@ -333007,7 +401643,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:*/ { @@ -333035,13 +401671,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; @@ -333058,7 +401694,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:; @@ -333069,12 +401705,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; @@ -333085,12 +401721,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; @@ -333102,15 +401738,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 @@ -333136,16 +401772,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -333162,18 +401798,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; { @@ -333187,7 +401823,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); @@ -333230,7 +401866,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; @@ -333252,7 +401888,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:; @@ -333265,19 +401901,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; { @@ -333291,7 +401927,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; @@ -333317,24 +401953,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 @@ -333355,87 +401991,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) { @@ -333443,18 +402073,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; @@ -333470,31 +402100,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:*/ { @@ -333504,9 +402142,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); @@ -333523,7 +402161,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; } @@ -333591,7 +402229,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; @@ -333603,10 +402241,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); @@ -333622,26 +402261,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 @@ -333662,87 +402301,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) { @@ -333750,13 +402383,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; @@ -333765,8 +402398,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 @@ -333788,36 +402421,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:*/ { @@ -333827,7 +402468,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:*/ { @@ -333840,7 +402481,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; @@ -333851,7 +402492,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); @@ -333955,27 +402596,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; @@ -333993,10 +402637,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); @@ -334015,27 +402660,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; @@ -334051,56 +402697,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; @@ -334124,7 +402778,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:*/ { @@ -334152,13 +402806,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; @@ -334175,7 +402829,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:; @@ -334187,27 +402841,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; @@ -334223,56 +402878,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; @@ -334296,7 +402959,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:*/ { @@ -334324,13 +402987,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; @@ -334347,7 +403010,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:; @@ -334359,21 +403022,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; @@ -334397,7 +403060,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:*/ { @@ -334425,13 +403088,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; @@ -334448,7 +403111,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:; @@ -334459,12 +403122,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; @@ -334475,12 +403138,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; @@ -334492,15 +403155,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 @@ -334526,16 +403189,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -334552,18 +403215,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; { @@ -334577,7 +403240,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); @@ -334620,7 +403283,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; @@ -334642,7 +403305,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:; @@ -334655,19 +403318,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; { @@ -334681,7 +403344,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; @@ -334707,27 +403370,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; @@ -334743,69 +403414,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; @@ -334821,39 +403607,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:*/ { @@ -334863,9 +403649,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); @@ -334882,7 +403668,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; } @@ -334950,7 +403736,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; @@ -334962,11 +403748,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); @@ -334982,29 +403768,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; @@ -335020,64 +403814,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; @@ -335086,8 +403995,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 @@ -335109,44 +404018,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:*/ { @@ -335156,7 +404065,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:*/ { @@ -335169,7 +404078,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; @@ -335180,7 +404089,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); @@ -335284,30 +404193,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; @@ -335325,11 +404234,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); @@ -335348,23 +404257,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 @@ -335385,52 +404294,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) { @@ -335442,7 +404351,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; @@ -335466,7 +404375,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:*/ { @@ -335494,13 +404403,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; @@ -335517,7 +404426,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:; @@ -335529,23 +404438,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 @@ -335566,52 +404475,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) { @@ -335623,7 +404532,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; @@ -335647,7 +404556,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:*/ { @@ -335675,13 +404584,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; @@ -335698,7 +404607,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:; @@ -335710,21 +404619,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; @@ -335748,7 +404657,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:*/ { @@ -335776,13 +404685,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; @@ -335799,7 +404708,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:; @@ -335810,12 +404719,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; @@ -335826,12 +404735,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; @@ -335843,15 +404752,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 @@ -335877,16 +404786,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -335903,18 +404812,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; { @@ -335928,7 +404837,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); @@ -335971,7 +404880,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; @@ -335993,7 +404902,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:; @@ -336006,19 +404915,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; { @@ -336032,7 +404941,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; @@ -336058,14 +404967,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 @@ -336073,13 +404982,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; @@ -336095,68 +405006,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) { @@ -336167,14 +405092,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; @@ -336190,39 +405117,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:*/ { @@ -336232,9 +405175,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); @@ -336251,7 +405194,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; } @@ -336319,7 +405262,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; @@ -336331,10 +405274,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); @@ -336351,16 +405296,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 @@ -336368,13 +405313,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; @@ -336390,68 +405337,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) { @@ -336462,8 +405423,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; @@ -336473,8 +405436,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 @@ -336496,44 +405459,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:*/ { @@ -336543,7 +405522,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:*/ { @@ -336556,7 +405535,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; @@ -336567,7 +405546,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); @@ -336671,30 +405650,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; @@ -336712,10 +405697,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); @@ -336735,15 +405722,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 @@ -336751,12 +405738,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; @@ -336772,52 +405761,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) { @@ -336825,11 +405828,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; @@ -336853,7 +405858,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:*/ { @@ -336881,13 +405886,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; @@ -336904,7 +405909,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:; @@ -336916,15 +405921,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 @@ -336932,12 +405937,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; @@ -336953,52 +405960,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) { @@ -337006,11 +406027,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; @@ -337034,7 +406057,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:*/ { @@ -337062,13 +406085,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; @@ -337085,7 +406108,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:; @@ -337097,21 +406120,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; @@ -337135,7 +406158,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:*/ { @@ -337163,13 +406186,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; @@ -337186,7 +406209,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:; @@ -337197,12 +406220,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; @@ -337213,12 +406236,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; @@ -337230,15 +406253,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 @@ -337264,16 +406287,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -337290,18 +406313,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; { @@ -337315,7 +406338,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); @@ -337358,7 +406381,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; @@ -337380,7 +406403,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:; @@ -337393,19 +406416,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; { @@ -337419,7 +406442,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; @@ -337445,14 +406468,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 @@ -337460,12 +406483,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; @@ -337481,78 +406503,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; @@ -337568,31 +406573,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:*/ { @@ -337602,9 +406607,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); @@ -337621,7 +406626,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; } @@ -337689,7 +406694,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; @@ -337701,7 +406706,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); @@ -337720,16 +406725,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 @@ -337737,12 +406742,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; @@ -337758,72 +406762,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; @@ -337833,8 +406820,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 @@ -337856,36 +406843,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:*/ { @@ -337895,7 +406882,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:*/ { @@ -337908,7 +406895,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; @@ -337919,7 +406906,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); @@ -338023,27 +407010,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; @@ -338061,7 +407048,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); @@ -338083,15 +407070,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 @@ -338121,43 +407108,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) { @@ -338168,7 +407155,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; @@ -338192,7 +407179,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:*/ { @@ -338220,13 +407207,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; @@ -338243,7 +407230,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:; @@ -338255,15 +407242,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 @@ -338293,43 +407280,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) { @@ -338340,7 +407327,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; @@ -338364,7 +407351,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:*/ { @@ -338392,13 +407379,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; @@ -338415,7 +407402,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:; @@ -338427,21 +407414,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; @@ -338465,7 +407452,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:*/ { @@ -338493,13 +407480,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; @@ -338516,7 +407503,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:; @@ -338527,12 +407514,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; @@ -338543,12 +407530,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; @@ -338560,15 +407547,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 @@ -338594,16 +407581,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -338620,18 +407607,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; { @@ -338645,7 +407632,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); @@ -338688,7 +407675,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; @@ -338710,7 +407697,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:; @@ -338723,19 +407710,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; { @@ -338749,7 +407736,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; @@ -338775,14 +407762,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 @@ -338790,12 +407777,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; @@ -338811,78 +407797,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; @@ -338898,31 +407867,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:*/ { @@ -338932,9 +407901,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); @@ -338951,7 +407920,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; } @@ -339019,7 +407988,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; @@ -339031,7 +408000,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); @@ -339050,16 +408019,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 @@ -339067,12 +408036,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; @@ -339088,72 +408056,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; @@ -339163,8 +408114,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 @@ -339186,36 +408137,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:*/ { @@ -339225,7 +408176,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:*/ { @@ -339238,7 +408189,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; @@ -339249,7 +408200,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); @@ -339353,27 +408304,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; @@ -339391,7 +408342,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); @@ -339413,15 +408364,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 @@ -339451,43 +408402,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) { @@ -339498,7 +408449,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; @@ -339522,7 +408473,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:*/ { @@ -339550,13 +408501,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; @@ -339573,7 +408524,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:; @@ -339585,15 +408536,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 @@ -339623,43 +408574,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) { @@ -339670,7 +408621,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; @@ -339694,7 +408645,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:*/ { @@ -339722,13 +408673,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; @@ -339745,7 +408696,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:; @@ -339757,21 +408708,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; @@ -339795,7 +408746,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:*/ { @@ -339823,13 +408774,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; @@ -339846,7 +408797,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:; @@ -339857,12 +408808,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; @@ -339873,12 +408824,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; @@ -339890,15 +408841,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 @@ -339924,16 +408875,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -339950,18 +408901,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; { @@ -339975,7 +408926,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); @@ -340018,7 +408969,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; @@ -340040,7 +408991,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:; @@ -340053,19 +409004,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; { @@ -340079,7 +409030,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; @@ -340105,14 +409056,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 @@ -340143,59 +409094,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) { @@ -340206,13 +409157,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; @@ -340228,31 +409179,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:*/ { @@ -340262,9 +409213,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); @@ -340281,7 +409232,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; } @@ -340349,7 +409300,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; @@ -340361,7 +409312,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); @@ -340380,16 +409331,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 @@ -340420,59 +409371,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) { @@ -340483,7 +409434,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; @@ -340493,8 +409444,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 @@ -340516,36 +409467,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:*/ { @@ -340555,7 +409506,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:*/ { @@ -340568,7 +409519,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; @@ -340579,7 +409530,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); @@ -340683,27 +409634,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; @@ -340721,7 +409672,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); @@ -340743,15 +409694,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 @@ -340781,43 +409732,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) { @@ -340828,7 +409779,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; @@ -340852,7 +409803,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:*/ { @@ -340880,13 +409831,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; @@ -340903,7 +409854,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:; @@ -340915,15 +409866,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 @@ -340953,43 +409904,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) { @@ -341000,7 +409951,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; @@ -341024,7 +409975,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:*/ { @@ -341052,13 +410003,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; @@ -341075,7 +410026,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:; @@ -341087,21 +410038,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; @@ -341125,7 +410076,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:*/ { @@ -341153,13 +410104,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; @@ -341176,7 +410127,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:; @@ -341187,12 +410138,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; @@ -341203,12 +410154,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; @@ -341220,15 +410171,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 @@ -341254,16 +410205,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -341280,18 +410231,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; { @@ -341305,7 +410256,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); @@ -341348,7 +410299,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; @@ -341370,7 +410321,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:; @@ -341383,19 +410334,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; { @@ -341409,7 +410360,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; @@ -341435,27 +410386,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; @@ -341471,79 +410427,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; @@ -341558,31 +410573,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:*/ { @@ -341592,9 +410623,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); @@ -341611,7 +410642,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; } @@ -341679,7 +410710,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; @@ -341691,10 +410722,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); @@ -341704,35 +410737,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; @@ -341748,83 +410787,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 @@ -341841,41 +410939,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:*/ { @@ -341885,7 +411000,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:*/ { @@ -341898,9 +411013,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; { @@ -341909,7 +411029,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); @@ -342013,37 +411133,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; @@ -342051,16 +411199,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); @@ -342073,27 +411225,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; @@ -342109,63 +411263,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; @@ -342182,7 +411355,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:*/ { @@ -342210,34 +411383,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; @@ -342245,27 +411431,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; @@ -342281,63 +411469,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; @@ -342354,7 +411561,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:*/ { @@ -342382,34 +411589,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; @@ -342417,28 +411637,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; @@ -342455,7 +411678,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:*/ { @@ -342483,46 +411706,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; @@ -342533,12 +411769,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; @@ -342550,15 +411786,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 @@ -342584,16 +411820,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -342610,18 +411846,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; { @@ -342635,7 +411871,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); @@ -342678,7 +411914,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; @@ -342700,7 +411936,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:; @@ -342713,19 +411949,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; { @@ -342739,7 +411975,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; @@ -342765,14 +412001,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 @@ -342780,12 +412016,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; @@ -342801,78 +412036,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; @@ -342888,31 +412106,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:*/ { @@ -342922,9 +412140,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); @@ -342941,7 +412159,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; } @@ -343009,7 +412227,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; @@ -343021,7 +412239,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); @@ -343040,16 +412258,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 @@ -343057,12 +412275,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; @@ -343078,72 +412295,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; @@ -343153,8 +412353,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 @@ -343176,36 +412376,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:*/ { @@ -343215,7 +412415,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:*/ { @@ -343228,7 +412428,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; @@ -343239,7 +412439,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); @@ -343343,27 +412543,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; @@ -343381,7 +412581,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); @@ -343403,15 +412603,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 @@ -343441,43 +412641,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) { @@ -343488,7 +412688,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; @@ -343512,7 +412712,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:*/ { @@ -343540,13 +412740,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; @@ -343563,7 +412763,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:; @@ -343575,15 +412775,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 @@ -343613,43 +412813,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) { @@ -343660,7 +412860,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; @@ -343684,7 +412884,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:*/ { @@ -343712,13 +412912,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; @@ -343735,7 +412935,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:; @@ -343747,21 +412947,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; @@ -343785,7 +412985,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:*/ { @@ -343813,13 +413013,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; @@ -343836,7 +413036,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:; @@ -343847,12 +413047,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; @@ -343863,12 +413063,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; @@ -343880,15 +413080,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 @@ -343914,16 +413114,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -343940,18 +413140,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; { @@ -343965,7 +413165,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); @@ -344008,7 +413208,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; @@ -344030,7 +413230,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:; @@ -344043,19 +413243,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; { @@ -344069,7 +413269,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; @@ -344095,27 +413295,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; @@ -344131,79 +413338,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; @@ -344218,31 +413512,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:*/ { @@ -344252,9 +413562,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); @@ -344271,7 +413581,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; } @@ -344339,7 +413649,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; @@ -344351,10 +413661,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); @@ -344364,35 +413676,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; @@ -344408,83 +413728,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 @@ -344501,41 +413908,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:*/ { @@ -344545,7 +413969,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:*/ { @@ -344558,9 +413982,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; { @@ -344569,7 +413998,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); @@ -344673,37 +414102,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; @@ -344711,16 +414168,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); @@ -344733,27 +414194,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; @@ -344769,239 +414232,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; @@ -345014,7 +414324,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:*/ { @@ -345042,34 +414352,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; @@ -345077,28 +414606,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; @@ -345115,7 +414647,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:*/ { @@ -345143,46 +414675,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; @@ -345193,12 +414738,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; @@ -345210,15 +414755,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 @@ -345244,16 +414789,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -345270,18 +414815,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; { @@ -345295,7 +414840,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); @@ -345338,7 +414883,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; @@ -345360,7 +414905,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:; @@ -345373,19 +414918,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; { @@ -345399,7 +414944,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; @@ -345425,14 +414970,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 @@ -345440,13 +414985,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; @@ -345462,74 +415008,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) { @@ -345537,17 +415096,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; @@ -345563,31 +415123,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:*/ { @@ -345597,9 +415157,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); @@ -345616,7 +415176,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; } @@ -345684,7 +415244,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; @@ -345696,7 +415256,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); @@ -345715,16 +415275,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 @@ -345732,13 +415292,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; @@ -345754,74 +415315,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) { @@ -345829,11 +415403,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; @@ -345843,8 +415418,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 @@ -345866,36 +415441,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:*/ { @@ -345905,7 +415480,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:*/ { @@ -345918,7 +415493,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; @@ -345929,7 +415504,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); @@ -346033,27 +415608,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; @@ -346071,7 +415646,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); @@ -346093,15 +415668,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 @@ -346131,43 +415706,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) { @@ -346178,7 +415753,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; @@ -346202,7 +415777,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:*/ { @@ -346230,13 +415805,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; @@ -346253,7 +415828,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:; @@ -346265,15 +415840,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 @@ -346303,43 +415878,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) { @@ -346350,7 +415925,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; @@ -346374,7 +415949,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:*/ { @@ -346402,13 +415977,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; @@ -346425,7 +416000,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:; @@ -346437,21 +416012,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; @@ -346475,7 +416050,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:*/ { @@ -346503,13 +416078,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; @@ -346526,7 +416101,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:; @@ -346537,12 +416112,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; @@ -346553,12 +416128,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; @@ -346570,15 +416145,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 @@ -346604,16 +416179,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -346630,18 +416205,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; { @@ -346655,7 +416230,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); @@ -346698,7 +416273,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; @@ -346720,7 +416295,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:; @@ -346733,19 +416308,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; { @@ -346759,7 +416334,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; @@ -346785,27 +416360,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; @@ -346821,78 +416397,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; @@ -346908,31 +416498,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:*/ { @@ -346942,9 +416532,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); @@ -346961,7 +416551,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; } @@ -347029,7 +416619,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; @@ -347041,10 +416631,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); @@ -347060,29 +416650,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; @@ -347098,73 +416689,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; @@ -347173,8 +416778,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 @@ -347196,36 +416801,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:*/ { @@ -347235,7 +416840,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:*/ { @@ -347248,7 +416853,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; @@ -347259,7 +416864,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); @@ -347363,27 +416968,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; @@ -347401,10 +417006,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); @@ -347423,22 +417028,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 @@ -347459,45 +417064,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) { @@ -347508,7 +417113,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; @@ -347532,7 +417137,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:*/ { @@ -347560,13 +417165,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; @@ -347583,7 +417188,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:; @@ -347595,22 +417200,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 @@ -347631,45 +417236,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) { @@ -347680,7 +417285,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; @@ -347704,7 +417309,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:*/ { @@ -347732,13 +417337,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; @@ -347755,7 +417360,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:; @@ -347767,21 +417372,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; @@ -347805,7 +417410,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:*/ { @@ -347833,13 +417438,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; @@ -347856,7 +417461,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:; @@ -347867,12 +417472,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; @@ -347883,12 +417488,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; @@ -347900,15 +417505,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 @@ -347934,16 +417539,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -347960,18 +417565,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; { @@ -347985,7 +417590,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); @@ -348028,7 +417633,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; @@ -348050,7 +417655,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:; @@ -348063,19 +417668,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; { @@ -348089,7 +417694,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; @@ -348115,14 +417720,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 @@ -348131,13 +417736,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; @@ -348153,81 +417762,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) { @@ -348235,19 +417890,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; @@ -348262,39 +417922,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:*/ { @@ -348304,9 +417972,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); @@ -348323,7 +417991,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; } @@ -348391,7 +418059,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; @@ -348403,11 +418071,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); @@ -348417,22 +418086,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 @@ -348441,13 +418111,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; @@ -348463,81 +418137,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) { @@ -348545,23 +418265,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 @@ -348578,49 +418303,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:*/ { @@ -348630,7 +418364,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:*/ { @@ -348643,9 +418377,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; { @@ -348654,7 +418393,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); @@ -348758,40 +418497,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; @@ -348799,17 +418563,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); @@ -348822,15 +418589,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 @@ -348839,11 +418606,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; @@ -348859,52 +418627,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) { @@ -348912,18 +418687,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; @@ -348940,7 +418719,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:*/ { @@ -348968,34 +418747,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; @@ -349003,15 +418795,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 @@ -349020,11 +418812,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; @@ -349040,52 +418833,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) { @@ -349093,18 +418893,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; @@ -349121,7 +418925,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:*/ { @@ -349149,34 +418953,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; @@ -349184,28 +419001,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; @@ -349222,7 +419042,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:*/ { @@ -349250,46 +419070,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; @@ -349300,12 +419133,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; @@ -349317,15 +419150,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 @@ -349351,16 +419184,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -349377,18 +419210,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; { @@ -349402,7 +419235,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); @@ -349445,7 +419278,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; @@ -349467,7 +419300,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:; @@ -349480,19 +419313,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; { @@ -349506,7 +419339,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; @@ -349532,14 +419365,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 @@ -349548,19 +419381,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; @@ -349576,159 +419405,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) { @@ -349737,24 +419508,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; @@ -349769,39 +419537,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:*/ { @@ -349811,9 +419587,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); @@ -349830,7 +419606,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; } @@ -349898,7 +419674,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; @@ -349910,11 +419686,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); @@ -349924,22 +419701,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 @@ -349948,19 +419726,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; @@ -349976,159 +419750,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) { @@ -350137,28 +419853,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 @@ -350175,49 +419888,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:*/ { @@ -350227,7 +419949,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:*/ { @@ -350240,9 +419962,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; { @@ -350251,7 +419978,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); @@ -350355,40 +420082,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; @@ -350396,17 +420148,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); @@ -350419,15 +420174,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 @@ -350436,11 +420191,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; @@ -350456,52 +420212,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) { @@ -350509,18 +420272,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; @@ -350537,7 +420304,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:*/ { @@ -350565,34 +420332,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; @@ -350600,15 +420380,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 @@ -350617,11 +420397,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; @@ -350637,52 +420418,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) { @@ -350690,18 +420478,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; @@ -350718,7 +420510,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:*/ { @@ -350746,34 +420538,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; @@ -350781,28 +420586,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; @@ -350819,7 +420627,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:*/ { @@ -350847,46 +420655,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; @@ -350897,12 +420718,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; @@ -350914,15 +420735,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 @@ -350948,16 +420769,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -350974,18 +420795,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; { @@ -350999,7 +420820,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); @@ -351042,7 +420863,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; @@ -351064,7 +420885,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:; @@ -351077,19 +420898,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; { @@ -351103,7 +420924,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; @@ -351129,14 +420950,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 @@ -351144,11 +420965,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; @@ -351164,62 +420989,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; @@ -351234,31 +421119,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:*/ { @@ -351268,9 +421153,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); @@ -351287,7 +421172,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; } @@ -351355,7 +421240,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; @@ -351367,7 +421252,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); @@ -351380,22 +421265,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 @@ -351403,11 +421289,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; @@ -351423,66 +421313,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 @@ -351499,41 +421449,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:*/ { @@ -351543,7 +421494,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:*/ { @@ -351556,9 +421507,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; { @@ -351567,7 +421523,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); @@ -351671,37 +421627,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; @@ -351709,7 +421681,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); @@ -351718,7 +421691,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); @@ -351731,15 +421705,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 @@ -351769,43 +421743,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) { @@ -351816,14 +421790,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; @@ -351840,7 +421817,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:*/ { @@ -351868,34 +421845,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; @@ -351903,15 +421893,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 @@ -351941,43 +421931,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) { @@ -351988,14 +421978,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; @@ -352012,7 +422005,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:*/ { @@ -352040,34 +422033,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; @@ -352075,28 +422081,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; @@ -352113,7 +422122,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:*/ { @@ -352141,46 +422150,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; @@ -352191,12 +422213,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; @@ -352208,15 +422230,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 @@ -352242,16 +422264,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -352268,18 +422290,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; { @@ -352293,7 +422315,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); @@ -352336,7 +422358,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; @@ -352358,7 +422380,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:; @@ -352371,19 +422393,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; { @@ -352397,7 +422419,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; @@ -352423,26 +422445,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; @@ -352458,45 +422481,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) { @@ -352506,13 +422536,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; @@ -352528,31 +422559,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:*/ { @@ -352562,9 +422601,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); @@ -352581,7 +422620,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; } @@ -352649,7 +422688,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; @@ -352661,10 +422700,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); @@ -352680,28 +422720,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; @@ -352717,45 +422758,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) { @@ -352765,8 +422813,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; @@ -352775,8 +422824,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 @@ -352798,36 +422847,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:*/ { @@ -352837,7 +422894,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:*/ { @@ -352850,7 +422907,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; @@ -352861,7 +422918,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); @@ -352965,27 +423022,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; @@ -353003,10 +423063,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); @@ -353025,27 +423086,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; @@ -353061,56 +423123,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; @@ -353134,7 +423204,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:*/ { @@ -353162,13 +423232,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; @@ -353185,7 +423255,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:; @@ -353197,27 +423267,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; @@ -353233,56 +423304,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; @@ -353306,7 +423385,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:*/ { @@ -353334,13 +423413,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; @@ -353357,7 +423436,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:; @@ -353369,21 +423448,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; @@ -353407,7 +423486,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:*/ { @@ -353435,13 +423514,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; @@ -353458,7 +423537,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:; @@ -353469,12 +423548,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; @@ -353485,12 +423564,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; @@ -353502,15 +423581,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 @@ -353536,16 +423615,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -353562,18 +423641,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; { @@ -353587,7 +423666,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); @@ -353630,7 +423709,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; @@ -353652,7 +423731,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:; @@ -353665,19 +423744,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; { @@ -353691,7 +423770,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; @@ -353717,14 +423796,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 @@ -353755,59 +423834,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) { @@ -353818,13 +423897,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; @@ -353840,31 +423919,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:*/ { @@ -353874,9 +423953,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); @@ -353893,7 +423972,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; } @@ -353961,7 +424040,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; @@ -353973,7 +424052,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); @@ -353992,16 +424071,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 @@ -354032,59 +424111,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) { @@ -354095,7 +424174,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; @@ -354105,8 +424184,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 @@ -354128,36 +424207,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:*/ { @@ -354167,7 +424246,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:*/ { @@ -354180,7 +424259,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; @@ -354191,7 +424270,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); @@ -354295,27 +424374,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; @@ -354333,7 +424412,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); @@ -354355,15 +424434,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 @@ -354393,43 +424472,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) { @@ -354440,7 +424519,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; @@ -354464,7 +424543,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:*/ { @@ -354492,13 +424571,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; @@ -354515,7 +424594,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:; @@ -354527,15 +424606,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 @@ -354565,43 +424644,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) { @@ -354612,7 +424691,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; @@ -354636,7 +424715,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:*/ { @@ -354664,13 +424743,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; @@ -354687,7 +424766,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:; @@ -354699,21 +424778,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; @@ -354737,7 +424816,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:*/ { @@ -354765,13 +424844,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; @@ -354788,7 +424867,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:; @@ -354799,12 +424878,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; @@ -354815,12 +424894,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; @@ -354832,15 +424911,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 @@ -354866,16 +424945,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -354892,18 +424971,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; { @@ -354917,7 +424996,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); @@ -354960,7 +425039,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; @@ -354982,7 +425061,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:; @@ -354995,19 +425074,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; { @@ -355021,7 +425100,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; @@ -355047,14 +425126,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 @@ -355065,14 +425144,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; @@ -355088,72 +425165,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; } @@ -355162,40 +425223,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) { @@ -355203,13 +425254,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; @@ -355217,9 +425266,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; @@ -355234,47 +425283,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:*/ { @@ -355284,9 +425333,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); @@ -355303,7 +425352,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; } @@ -355371,7 +425420,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; @@ -355383,7 +425432,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); @@ -355405,16 +425454,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 @@ -355425,14 +425474,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; @@ -355448,72 +425495,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; } @@ -355522,40 +425553,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) { @@ -355563,13 +425584,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; @@ -355578,12 +425597,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 @@ -355606,52 +425625,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:*/ { @@ -355661,7 +425680,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:*/ { @@ -355674,14 +425693,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; { @@ -355690,7 +425709,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); @@ -355794,55 +425813,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; @@ -355861,7 +425880,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); @@ -355872,8 +425891,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); @@ -355886,15 +425905,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 @@ -355926,57 +425945,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) { @@ -355989,9 +426008,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 @@ -356016,7 +426035,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:*/ { @@ -356044,22 +426063,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; { @@ -356079,7 +426098,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:; @@ -356092,15 +426111,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 @@ -356132,57 +426151,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) { @@ -356195,9 +426214,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 @@ -356222,7 +426241,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:*/ { @@ -356250,22 +426269,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; { @@ -356285,7 +426304,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:; @@ -356298,23 +426317,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 @@ -356339,7 +426358,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:*/ { @@ -356367,22 +426386,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; { @@ -356402,7 +426421,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:; @@ -356414,12 +426433,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; @@ -356430,12 +426449,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; @@ -356447,15 +426466,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 @@ -356481,16 +426500,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -356507,18 +426526,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; { @@ -356532,7 +426551,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); @@ -356575,7 +426594,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; @@ -356597,7 +426616,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:; @@ -356610,19 +426629,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; { @@ -356636,7 +426655,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; @@ -356662,14 +426681,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 @@ -356677,11 +426696,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; @@ -356697,61 +426717,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; @@ -356767,31 +426804,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:*/ { @@ -356801,9 +426838,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); @@ -356820,7 +426857,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; } @@ -356888,7 +426925,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; @@ -356900,7 +426937,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); @@ -356919,16 +426956,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 @@ -356936,11 +426973,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; @@ -356956,55 +426994,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; @@ -357014,8 +427069,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 @@ -357037,36 +427092,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:*/ { @@ -357076,7 +427131,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:*/ { @@ -357089,7 +427144,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; @@ -357100,7 +427155,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); @@ -357204,27 +427259,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; @@ -357242,7 +427297,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); @@ -357264,15 +427319,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 @@ -357302,43 +427357,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) { @@ -357349,7 +427404,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; @@ -357373,7 +427428,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:*/ { @@ -357401,13 +427456,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; @@ -357424,7 +427479,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:; @@ -357436,15 +427491,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 @@ -357474,43 +427529,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) { @@ -357521,7 +427576,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; @@ -357545,7 +427600,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:*/ { @@ -357573,13 +427628,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; @@ -357596,7 +427651,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:; @@ -357608,21 +427663,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; @@ -357646,7 +427701,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:*/ { @@ -357674,13 +427729,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; @@ -357697,7 +427752,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:; @@ -357708,12 +427763,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; @@ -357724,12 +427779,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; @@ -357741,15 +427796,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 @@ -357775,16 +427830,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -357801,18 +427856,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; { @@ -357826,7 +427881,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); @@ -357869,7 +427924,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; @@ -357891,7 +427946,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:; @@ -357904,19 +427959,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; { @@ -357930,7 +427985,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; @@ -357956,14 +428011,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 @@ -357972,7 +428027,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 @@ -357993,74 +428048,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) { @@ -358072,13 +428127,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; @@ -358094,31 +428149,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:*/ { @@ -358128,9 +428183,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); @@ -358147,7 +428202,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; } @@ -358215,7 +428270,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; @@ -358227,7 +428282,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); @@ -358246,16 +428301,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 @@ -358264,7 +428319,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 @@ -358285,74 +428340,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) { @@ -358364,7 +428419,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; @@ -358374,8 +428429,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 @@ -358397,36 +428452,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:*/ { @@ -358436,7 +428491,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:*/ { @@ -358449,7 +428504,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; @@ -358460,7 +428515,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); @@ -358564,27 +428619,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; @@ -358602,7 +428657,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); @@ -358624,15 +428679,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 @@ -358662,43 +428717,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) { @@ -358709,7 +428764,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; @@ -358733,7 +428788,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:*/ { @@ -358761,13 +428816,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; @@ -358784,7 +428839,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:; @@ -358796,15 +428851,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 @@ -358834,43 +428889,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) { @@ -358881,7 +428936,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; @@ -358905,7 +428960,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:*/ { @@ -358933,13 +428988,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; @@ -358956,7 +429011,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:; @@ -358968,21 +429023,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; @@ -359006,7 +429061,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:*/ { @@ -359034,13 +429089,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; @@ -359057,7 +429112,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:; @@ -359068,12 +429123,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; @@ -359084,12 +429139,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; @@ -359101,15 +429156,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 @@ -359135,16 +429190,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -359161,18 +429216,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; { @@ -359186,7 +429241,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); @@ -359229,7 +429284,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; @@ -359251,7 +429306,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:; @@ -359264,19 +429319,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; { @@ -359290,7 +429345,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; @@ -359316,33 +429371,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; @@ -359358,152 +429407,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; @@ -359518,47 +429494,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:*/ { @@ -359568,9 +429528,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); @@ -359587,7 +429547,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; } @@ -359655,7 +429615,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; @@ -359667,12 +429627,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); @@ -359682,42 +429640,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; @@ -359733,156 +429684,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 @@ -359899,58 +429777,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:*/ { @@ -359960,7 +429821,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:*/ { @@ -359973,14 +429834,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; { @@ -359989,7 +429845,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); @@ -360093,65 +429949,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; @@ -360159,20 +429987,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); @@ -360185,29 +430009,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; @@ -360223,82 +430045,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; @@ -360315,7 +430118,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:*/ { @@ -360343,47 +430146,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; @@ -360391,29 +430181,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; @@ -360429,82 +430217,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; @@ -360521,7 +430290,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:*/ { @@ -360549,47 +430318,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; @@ -360597,31 +430353,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; @@ -360638,7 +430391,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:*/ { @@ -360666,59 +430419,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; @@ -360729,12 +430469,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; @@ -360746,15 +430486,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 @@ -360780,16 +430520,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -360806,18 +430546,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; { @@ -360831,7 +430571,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); @@ -360874,7 +430614,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; @@ -360896,7 +430636,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:; @@ -360909,19 +430649,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; { @@ -360935,7 +430675,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; @@ -360961,31 +430701,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; @@ -361001,124 +430737,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; @@ -361133,47 +430824,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:*/ { @@ -361183,9 +430858,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); @@ -361202,7 +430877,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; } @@ -361270,7 +430945,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; @@ -361282,12 +430957,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); @@ -361297,40 +430970,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; @@ -361346,128 +431014,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 @@ -361484,58 +431107,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:*/ { @@ -361545,7 +431151,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:*/ { @@ -361558,14 +431164,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; { @@ -361574,7 +431175,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); @@ -361678,65 +431279,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; @@ -361744,20 +431317,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); @@ -361770,29 +431339,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; @@ -361808,82 +431375,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; @@ -361900,7 +431448,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:*/ { @@ -361928,47 +431476,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; @@ -361976,29 +431511,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; @@ -362014,82 +431547,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; @@ -362106,7 +431620,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:*/ { @@ -362134,47 +431648,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; @@ -362182,31 +431683,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; @@ -362223,7 +431721,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:*/ { @@ -362251,59 +431749,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; @@ -362314,12 +431799,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; @@ -362331,15 +431816,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 @@ -362365,16 +431850,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -362391,18 +431876,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; { @@ -362416,7 +431901,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); @@ -362459,7 +431944,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; @@ -362481,7 +431966,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:; @@ -362494,19 +431979,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; { @@ -362520,7 +432005,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; @@ -362546,14 +432031,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 @@ -362562,14 +432047,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; @@ -362585,122 +432067,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; @@ -362715,31 +432154,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:*/ { @@ -362749,9 +432188,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); @@ -362768,7 +432207,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; } @@ -362836,7 +432275,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; @@ -362848,7 +432287,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); @@ -362861,23 +432300,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 @@ -362886,14 +432324,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; @@ -362909,126 +432344,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 @@ -363045,42 +432437,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:*/ { @@ -363090,7 +432481,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:*/ { @@ -363103,14 +432494,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; { @@ -363119,7 +432505,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); @@ -363223,53 +432609,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; @@ -363277,8 +432647,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); @@ -363287,8 +432656,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); @@ -363301,15 +432669,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 @@ -363339,43 +432707,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) { @@ -363386,17 +432754,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; @@ -363413,7 +432778,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:*/ { @@ -363441,47 +432806,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; @@ -363489,15 +432841,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 @@ -363527,43 +432879,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) { @@ -363574,17 +432926,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; @@ -363601,7 +432950,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:*/ { @@ -363629,47 +432978,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; @@ -363677,31 +433013,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; @@ -363718,7 +433051,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:*/ { @@ -363746,59 +433079,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; @@ -363809,12 +433129,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; @@ -363826,15 +433146,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 @@ -363860,16 +433180,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -363886,18 +433206,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; { @@ -363911,7 +433231,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); @@ -363954,7 +433274,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; @@ -363976,7 +433296,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:; @@ -363989,19 +433309,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; { @@ -364015,7 +433335,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; @@ -364041,27 +433361,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; @@ -364077,69 +433398,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; @@ -364155,39 +433499,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:*/ { @@ -364197,9 +433533,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); @@ -364216,7 +433552,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; } @@ -364284,7 +433620,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; @@ -364296,11 +433632,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); @@ -364316,29 +433651,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; @@ -364354,64 +433690,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; @@ -364420,8 +433779,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 @@ -364443,44 +433802,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:*/ { @@ -364490,7 +433841,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:*/ { @@ -364503,7 +433854,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; @@ -364514,7 +433865,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); @@ -364618,30 +433969,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; @@ -364659,11 +434007,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); @@ -364682,28 +434029,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; @@ -364719,64 +434065,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; @@ -364800,7 +434138,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:*/ { @@ -364828,13 +434166,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; @@ -364851,7 +434189,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:; @@ -364863,28 +434201,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; @@ -364900,64 +434237,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; @@ -364981,7 +434310,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:*/ { @@ -365009,13 +434338,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; @@ -365032,7 +434361,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:; @@ -365044,21 +434373,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; @@ -365082,7 +434411,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:*/ { @@ -365110,13 +434439,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; @@ -365133,7 +434462,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:; @@ -365144,12 +434473,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; @@ -365160,12 +434489,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; @@ -365177,15 +434506,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 @@ -365211,16 +434540,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -365237,18 +434566,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; { @@ -365262,7 +434591,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); @@ -365305,7 +434634,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; @@ -365327,7 +434656,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:; @@ -365340,19 +434669,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; { @@ -365366,7 +434695,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; @@ -365392,14 +434721,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 @@ -365407,12 +434736,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; @@ -365428,78 +434756,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; @@ -365515,31 +434826,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:*/ { @@ -365549,9 +434860,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); @@ -365568,7 +434879,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; } @@ -365636,7 +434947,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; @@ -365648,7 +434959,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); @@ -365667,16 +434978,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 @@ -365684,12 +434995,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; @@ -365705,72 +435015,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; @@ -365780,8 +435073,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 @@ -365803,36 +435096,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:*/ { @@ -365842,7 +435135,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:*/ { @@ -365855,7 +435148,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; @@ -365866,7 +435159,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); @@ -365970,27 +435263,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; @@ -366008,7 +435301,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); @@ -366030,15 +435323,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 @@ -366068,43 +435361,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) { @@ -366115,7 +435408,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; @@ -366139,7 +435432,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:*/ { @@ -366167,13 +435460,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; @@ -366190,7 +435483,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:; @@ -366202,15 +435495,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 @@ -366240,43 +435533,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) { @@ -366287,7 +435580,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; @@ -366311,7 +435604,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:*/ { @@ -366339,13 +435632,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; @@ -366362,7 +435655,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:; @@ -366374,21 +435667,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; @@ -366412,7 +435705,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:*/ { @@ -366440,13 +435733,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; @@ -366463,7 +435756,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:; @@ -366474,12 +435767,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; @@ -366490,12 +435783,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; @@ -366507,15 +435800,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 @@ -366541,16 +435834,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -366567,18 +435860,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; { @@ -366592,7 +435885,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); @@ -366635,7 +435928,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; @@ -366657,7 +435950,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:; @@ -366670,19 +435963,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; { @@ -366696,7 +435989,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; @@ -366722,30 +436015,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; @@ -366761,110 +436050,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; @@ -366879,47 +436120,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:*/ { @@ -366929,9 +436154,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); @@ -366948,7 +436173,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; } @@ -367016,7 +436241,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; @@ -367028,12 +436253,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); @@ -367043,39 +436266,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; @@ -367091,114 +436309,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 @@ -367215,58 +436385,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:*/ { @@ -367276,7 +436429,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:*/ { @@ -367289,14 +436442,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; { @@ -367305,7 +436453,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); @@ -367409,65 +436557,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; @@ -367475,20 +436595,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); @@ -367501,29 +436617,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; @@ -367539,82 +436653,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; @@ -367631,7 +436726,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:*/ { @@ -367659,47 +436754,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; @@ -367707,29 +436789,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; @@ -367745,82 +436825,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; @@ -367837,7 +436898,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:*/ { @@ -367865,47 +436926,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; @@ -367913,31 +436961,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; @@ -367954,7 +436999,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:*/ { @@ -367982,59 +437027,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; @@ -368045,12 +437077,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; @@ -368062,15 +437094,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 @@ -368096,16 +437128,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -368122,18 +437154,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; { @@ -368147,7 +437179,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); @@ -368190,7 +437222,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; @@ -368212,7 +437244,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:; @@ -368225,19 +437257,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; { @@ -368251,7 +437283,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; @@ -368277,14 +437309,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 @@ -368293,12 +437325,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; @@ -368314,92 +437345,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; @@ -368415,31 +437432,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:*/ { @@ -368449,9 +437466,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); @@ -368468,7 +437485,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; } @@ -368536,7 +437553,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; @@ -368548,7 +437565,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); @@ -368567,16 +437584,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 @@ -368585,12 +437602,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; @@ -368606,86 +437622,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; @@ -368695,8 +437697,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 @@ -368718,36 +437720,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:*/ { @@ -368757,7 +437759,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:*/ { @@ -368770,7 +437772,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; @@ -368781,7 +437783,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); @@ -368885,27 +437887,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; @@ -368923,7 +437925,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); @@ -368945,15 +437947,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 @@ -368983,43 +437985,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) { @@ -369030,7 +438032,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; @@ -369054,7 +438056,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:*/ { @@ -369082,13 +438084,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; @@ -369105,7 +438107,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:; @@ -369117,15 +438119,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 @@ -369155,43 +438157,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) { @@ -369202,7 +438204,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; @@ -369226,7 +438228,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:*/ { @@ -369254,13 +438256,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; @@ -369277,7 +438279,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:; @@ -369289,21 +438291,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; @@ -369327,7 +438329,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:*/ { @@ -369355,13 +438357,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; @@ -369378,7 +438380,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:; @@ -369389,12 +438391,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; @@ -369405,12 +438407,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; @@ -369422,15 +438424,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 @@ -369456,16 +438458,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -369482,18 +438484,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; { @@ -369507,7 +438509,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); @@ -369550,7 +438552,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; @@ -369572,7 +438574,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:; @@ -369585,19 +438587,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; { @@ -369611,7 +438613,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; @@ -369637,26 +438639,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; @@ -369672,45 +438676,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) { @@ -369720,13 +438738,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; @@ -369742,31 +438762,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:*/ { @@ -369776,9 +438812,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); @@ -369795,7 +438831,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; } @@ -369863,7 +438899,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; @@ -369875,10 +438911,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); @@ -369894,28 +438932,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; @@ -369931,45 +438971,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) { @@ -369979,8 +439033,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; @@ -369989,8 +439045,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 @@ -370012,36 +439068,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:*/ { @@ -370051,7 +439123,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:*/ { @@ -370064,7 +439136,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; @@ -370075,7 +439147,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); @@ -370179,27 +439251,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; @@ -370217,10 +439295,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); @@ -370239,27 +439319,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; @@ -370275,56 +439357,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; @@ -370348,7 +439446,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:*/ { @@ -370376,13 +439474,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; @@ -370399,7 +439497,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:; @@ -370411,27 +439509,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; @@ -370447,56 +439547,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; @@ -370520,7 +439636,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:*/ { @@ -370548,13 +439664,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; @@ -370571,7 +439687,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:; @@ -370583,21 +439699,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; @@ -370621,7 +439737,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:*/ { @@ -370649,13 +439765,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; @@ -370672,7 +439788,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:; @@ -370683,12 +439799,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; @@ -370699,12 +439815,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; @@ -370716,15 +439832,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 @@ -370750,16 +439866,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -370776,18 +439892,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; { @@ -370801,7 +439917,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); @@ -370844,7 +439960,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; @@ -370866,7 +439982,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:; @@ -370879,19 +439995,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; { @@ -370905,7 +440021,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; @@ -370931,14 +440047,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 @@ -370946,11 +440062,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; @@ -370966,61 +440083,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; @@ -371036,31 +440170,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:*/ { @@ -371070,9 +440204,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); @@ -371089,7 +440223,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; } @@ -371157,7 +440291,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; @@ -371169,7 +440303,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); @@ -371188,16 +440322,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 @@ -371205,11 +440339,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; @@ -371225,55 +440360,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; @@ -371283,8 +440435,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 @@ -371306,36 +440458,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:*/ { @@ -371345,7 +440497,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:*/ { @@ -371358,7 +440510,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; @@ -371369,7 +440521,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); @@ -371473,27 +440625,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; @@ -371511,7 +440663,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); @@ -371533,15 +440685,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 @@ -371571,43 +440723,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) { @@ -371618,7 +440770,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; @@ -371642,7 +440794,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:*/ { @@ -371670,13 +440822,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; @@ -371693,7 +440845,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:; @@ -371705,15 +440857,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 @@ -371743,43 +440895,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) { @@ -371790,7 +440942,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; @@ -371814,7 +440966,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:*/ { @@ -371842,13 +440994,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; @@ -371865,7 +441017,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:; @@ -371877,21 +441029,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; @@ -371915,7 +441067,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:*/ { @@ -371943,13 +441095,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; @@ -371966,7 +441118,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:; @@ -371977,12 +441129,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; @@ -371993,12 +441145,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; @@ -372010,15 +441162,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 @@ -372044,16 +441196,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -372070,18 +441222,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; { @@ -372095,7 +441247,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); @@ -372138,7 +441290,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; @@ -372160,7 +441312,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:; @@ -372173,19 +441325,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; { @@ -372199,7 +441351,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; @@ -372225,14 +441377,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 @@ -372263,59 +441415,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) { @@ -372326,13 +441478,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; @@ -372348,31 +441500,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:*/ { @@ -372382,9 +441534,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); @@ -372401,7 +441553,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; } @@ -372469,7 +441621,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; @@ -372481,7 +441633,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); @@ -372500,16 +441652,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 @@ -372540,59 +441692,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) { @@ -372603,7 +441755,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; @@ -372613,8 +441765,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 @@ -372636,36 +441788,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:*/ { @@ -372675,7 +441827,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:*/ { @@ -372688,7 +441840,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; @@ -372699,7 +441851,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); @@ -372803,27 +441955,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; @@ -372841,7 +441993,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); @@ -372863,15 +442015,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 @@ -372901,43 +442053,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) { @@ -372948,7 +442100,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; @@ -372972,7 +442124,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:*/ { @@ -373000,13 +442152,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; @@ -373023,7 +442175,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:; @@ -373035,15 +442187,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 @@ -373073,43 +442225,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) { @@ -373120,7 +442272,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; @@ -373144,7 +442296,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:*/ { @@ -373172,13 +442324,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; @@ -373195,7 +442347,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:; @@ -373207,21 +442359,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; @@ -373245,7 +442397,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:*/ { @@ -373273,13 +442425,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; @@ -373296,7 +442448,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:; @@ -373307,12 +442459,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; @@ -373323,12 +442475,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; @@ -373340,15 +442492,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 @@ -373374,16 +442526,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -373400,18 +442552,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; { @@ -373425,7 +442577,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); @@ -373468,7 +442620,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; @@ -373490,7 +442642,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:; @@ -373503,19 +442655,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; { @@ -373529,7 +442681,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; @@ -373555,28 +442707,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; @@ -373592,77 +442743,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; @@ -373678,47 +442830,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:*/ { @@ -373728,9 +442864,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); @@ -373747,7 +442883,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; } @@ -373815,7 +442951,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; @@ -373827,12 +442963,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); @@ -373848,30 +442982,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; @@ -373887,72 +443020,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; @@ -373961,8 +443095,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 @@ -373984,52 +443118,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:*/ { @@ -374039,7 +443157,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:*/ { @@ -374052,7 +443170,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; @@ -374063,7 +443181,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); @@ -374167,33 +443285,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; @@ -374211,12 +443323,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); @@ -374235,29 +443345,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; @@ -374273,72 +443381,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; @@ -374362,7 +443454,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:*/ { @@ -374390,13 +443482,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; @@ -374413,7 +443505,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:; @@ -374425,29 +443517,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; @@ -374463,72 +443553,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; @@ -374552,7 +443626,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:*/ { @@ -374580,13 +443654,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; @@ -374603,7 +443677,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:; @@ -374615,21 +443689,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; @@ -374653,7 +443727,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:*/ { @@ -374681,13 +443755,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; @@ -374704,7 +443778,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:; @@ -374715,12 +443789,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; @@ -374731,12 +443805,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; @@ -374748,15 +443822,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 @@ -374782,16 +443856,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -374808,18 +443882,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; { @@ -374833,7 +443907,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); @@ -374876,7 +443950,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; @@ -374898,7 +443972,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:; @@ -374911,19 +443985,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; { @@ -374937,7 +444011,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; @@ -374963,14 +444037,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 @@ -374978,12 +444052,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; @@ -374999,78 +444074,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; @@ -375086,31 +444175,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:*/ { @@ -375120,9 +444209,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); @@ -375139,7 +444228,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; } @@ -375207,7 +444296,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; @@ -375219,7 +444308,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); @@ -375238,16 +444327,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 @@ -375255,12 +444344,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; @@ -375276,72 +444366,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; @@ -375351,8 +444455,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 @@ -375374,36 +444478,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:*/ { @@ -375413,7 +444517,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:*/ { @@ -375426,7 +444530,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; @@ -375437,7 +444541,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); @@ -375541,27 +444645,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; @@ -375579,7 +444683,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); @@ -375601,15 +444705,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 @@ -375639,43 +444743,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) { @@ -375686,7 +444790,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; @@ -375710,7 +444814,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:*/ { @@ -375738,13 +444842,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; @@ -375761,7 +444865,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:; @@ -375773,15 +444877,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 @@ -375811,43 +444915,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) { @@ -375858,7 +444962,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; @@ -375882,7 +444986,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:*/ { @@ -375910,13 +445014,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; @@ -375933,7 +445037,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:; @@ -375945,21 +445049,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; @@ -375983,7 +445087,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:*/ { @@ -376011,13 +445115,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; @@ -376034,7 +445138,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:; @@ -376045,12 +445149,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; @@ -376061,12 +445165,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; @@ -376078,15 +445182,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 @@ -376112,16 +445216,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -376138,18 +445242,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; { @@ -376163,7 +445267,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); @@ -376206,7 +445310,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; @@ -376228,7 +445332,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:; @@ -376241,19 +445345,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; { @@ -376267,7 +445371,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; @@ -376293,27 +445397,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; @@ -376329,78 +445434,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; @@ -376416,31 +445520,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:*/ { @@ -376450,9 +445570,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); @@ -376469,7 +445589,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; } @@ -376537,7 +445657,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; @@ -376549,10 +445669,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); @@ -376568,29 +445690,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; @@ -376606,73 +445729,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; @@ -376681,8 +445803,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 @@ -376704,36 +445826,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:*/ { @@ -376743,7 +445881,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:*/ { @@ -376756,7 +445894,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; @@ -376767,7 +445905,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); @@ -376871,27 +446009,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; @@ -376909,10 +446053,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); @@ -376931,27 +446077,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; @@ -376967,56 +446115,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; @@ -377040,7 +446204,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:*/ { @@ -377068,13 +446232,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; @@ -377091,7 +446255,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:; @@ -377103,27 +446267,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; @@ -377139,56 +446305,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; @@ -377212,7 +446394,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:*/ { @@ -377240,13 +446422,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; @@ -377263,7 +446445,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:; @@ -377275,21 +446457,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; @@ -377313,7 +446495,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:*/ { @@ -377341,13 +446523,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; @@ -377364,7 +446546,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:; @@ -377375,12 +446557,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; @@ -377391,12 +446573,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; @@ -377408,15 +446590,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 @@ -377442,16 +446624,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -377468,18 +446650,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; { @@ -377493,7 +446675,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); @@ -377536,7 +446718,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; @@ -377558,7 +446740,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:; @@ -377571,19 +446753,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; { @@ -377597,7 +446779,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; @@ -377623,27 +446805,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; @@ -377659,78 +446845,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; @@ -377746,31 +446976,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:*/ { @@ -377780,9 +447026,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); @@ -377799,7 +447045,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; } @@ -377867,7 +447113,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; @@ -377879,10 +447125,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); @@ -377898,29 +447146,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; @@ -377936,73 +447188,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; @@ -378011,8 +447307,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 @@ -378034,36 +447330,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:*/ { @@ -378073,7 +447385,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:*/ { @@ -378086,7 +447398,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; @@ -378097,7 +447409,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); @@ -378201,27 +447513,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; @@ -378239,10 +447557,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); @@ -378261,27 +447581,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; @@ -378297,56 +447619,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; @@ -378370,7 +447708,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:*/ { @@ -378398,13 +447736,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; @@ -378421,7 +447759,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:; @@ -378433,27 +447771,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; @@ -378469,56 +447809,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; @@ -378542,7 +447898,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:*/ { @@ -378570,13 +447926,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; @@ -378593,7 +447949,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:; @@ -378605,21 +447961,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; @@ -378643,7 +447999,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:*/ { @@ -378671,13 +448027,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; @@ -378694,7 +448050,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:; @@ -378705,12 +448061,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; @@ -378721,12 +448077,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; @@ -378738,15 +448094,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 @@ -378772,16 +448128,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -378798,18 +448154,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; { @@ -378823,7 +448179,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); @@ -378866,7 +448222,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; @@ -378888,7 +448244,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:; @@ -378901,19 +448257,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; { @@ -378927,7 +448283,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; @@ -378953,14 +448309,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 @@ -378968,8 +448324,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 @@ -378990,74 +448346,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) { @@ -379069,13 +448425,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; @@ -379091,31 +448447,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:*/ { @@ -379125,9 +448481,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); @@ -379144,7 +448500,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; } @@ -379212,7 +448568,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; @@ -379224,7 +448580,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); @@ -379243,16 +448599,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 @@ -379260,8 +448616,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 @@ -379282,74 +448638,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) { @@ -379361,7 +448717,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; @@ -379371,8 +448727,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 @@ -379394,36 +448750,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:*/ { @@ -379433,7 +448789,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:*/ { @@ -379446,7 +448802,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; @@ -379457,7 +448813,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); @@ -379561,27 +448917,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; @@ -379599,7 +448955,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); @@ -379621,15 +448977,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 @@ -379659,43 +449015,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) { @@ -379706,7 +449062,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; @@ -379730,7 +449086,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:*/ { @@ -379758,13 +449114,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; @@ -379781,7 +449137,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:; @@ -379793,15 +449149,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 @@ -379831,43 +449187,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) { @@ -379878,7 +449234,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; @@ -379902,7 +449258,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:*/ { @@ -379930,13 +449286,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; @@ -379953,7 +449309,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:; @@ -379965,21 +449321,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; @@ -380003,7 +449359,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:*/ { @@ -380031,13 +449387,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; @@ -380054,7 +449410,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:; @@ -380065,12 +449421,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; @@ -380081,12 +449437,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; @@ -380098,15 +449454,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 @@ -380132,16 +449488,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -380158,18 +449514,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; { @@ -380183,7 +449539,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); @@ -380226,7 +449582,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; @@ -380248,7 +449604,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:; @@ -380261,19 +449617,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; { @@ -380287,7 +449643,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; @@ -380313,28 +449669,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; @@ -380350,77 +449705,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; @@ -380436,47 +449792,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:*/ { @@ -380486,9 +449826,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); @@ -380505,7 +449845,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; } @@ -380573,7 +449913,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; @@ -380585,12 +449925,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); @@ -380606,30 +449944,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; @@ -380645,72 +449982,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; @@ -380719,8 +450057,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 @@ -380742,52 +450080,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:*/ { @@ -380797,7 +450119,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:*/ { @@ -380810,7 +450132,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; @@ -380821,7 +450143,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); @@ -380925,33 +450247,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; @@ -380969,12 +450285,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); @@ -380993,29 +450307,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; @@ -381031,72 +450343,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; @@ -381120,7 +450416,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:*/ { @@ -381148,13 +450444,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; @@ -381171,7 +450467,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:; @@ -381183,29 +450479,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; @@ -381221,72 +450515,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; @@ -381310,7 +450588,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:*/ { @@ -381338,13 +450616,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; @@ -381361,7 +450639,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:; @@ -381373,21 +450651,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; @@ -381411,7 +450689,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:*/ { @@ -381439,13 +450717,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; @@ -381462,7 +450740,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:; @@ -381473,12 +450751,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; @@ -381489,12 +450767,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; @@ -381506,15 +450784,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 @@ -381540,16 +450818,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -381566,18 +450844,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; { @@ -381591,7 +450869,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); @@ -381634,7 +450912,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; @@ -381656,7 +450934,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:; @@ -381669,19 +450947,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; { @@ -381695,7 +450973,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; @@ -381721,31 +450999,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; @@ -381761,101 +451036,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) { @@ -381863,20 +451111,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; @@ -381892,47 +451137,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:*/ { @@ -381942,9 +451171,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); @@ -381961,7 +451190,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; } @@ -382029,7 +451258,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; @@ -382041,12 +451270,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); @@ -382062,33 +451289,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; @@ -382104,101 +451328,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) { @@ -382206,15 +451403,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; @@ -382223,8 +451417,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 @@ -382246,52 +451440,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:*/ { @@ -382301,7 +451479,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:*/ { @@ -382314,7 +451492,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; @@ -382325,7 +451503,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); @@ -382429,33 +451607,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; @@ -382473,12 +451645,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); @@ -382497,29 +451667,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; @@ -382535,72 +451703,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; @@ -382624,7 +451776,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:*/ { @@ -382652,13 +451804,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; @@ -382675,7 +451827,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:; @@ -382687,29 +451839,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; @@ -382725,72 +451875,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; @@ -382814,7 +451948,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:*/ { @@ -382842,13 +451976,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; @@ -382865,7 +451999,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:; @@ -382877,21 +452011,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; @@ -382915,7 +452049,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:*/ { @@ -382943,13 +452077,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; @@ -382966,7 +452100,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:; @@ -382977,12 +452111,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; @@ -382993,12 +452127,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; @@ -383010,15 +452144,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 @@ -383044,16 +452178,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -383070,18 +452204,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; { @@ -383095,7 +452229,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); @@ -383138,7 +452272,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; @@ -383160,7 +452294,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:; @@ -383173,19 +452307,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; { @@ -383199,7 +452333,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; @@ -383225,28 +452359,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; @@ -383262,93 +452397,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; @@ -383363,31 +452501,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:*/ { @@ -383397,9 +452551,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); @@ -383416,7 +452570,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; } @@ -383484,7 +452638,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; @@ -383496,10 +452650,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); @@ -383509,36 +452665,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; @@ -383554,97 +452712,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 @@ -383661,41 +452822,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:*/ { @@ -383705,7 +452883,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:*/ { @@ -383718,9 +452896,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; { @@ -383729,7 +452912,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); @@ -383833,37 +453016,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; @@ -383871,16 +453082,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); @@ -383893,27 +453108,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; @@ -383929,63 +453146,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; @@ -384002,7 +453238,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:*/ { @@ -384030,34 +453266,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; @@ -384065,27 +453314,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; @@ -384101,63 +453352,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; @@ -384174,7 +453444,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:*/ { @@ -384202,34 +453472,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; @@ -384237,28 +453520,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; @@ -384275,7 +453561,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:*/ { @@ -384303,46 +453589,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; @@ -384353,12 +453652,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; @@ -384370,15 +453669,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 @@ -384404,16 +453703,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -384430,18 +453729,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; { @@ -384455,7 +453754,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); @@ -384498,7 +453797,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; @@ -384520,7 +453819,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:; @@ -384533,19 +453832,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; { @@ -384559,7 +453858,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; @@ -384585,27 +453884,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; @@ -384621,78 +453922,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; @@ -384708,31 +454016,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:*/ { @@ -384742,9 +454074,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); @@ -384761,7 +454093,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; } @@ -384829,7 +454161,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; @@ -384841,10 +454173,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); @@ -384860,29 +454195,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; @@ -384898,73 +454235,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; @@ -384973,8 +454317,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 @@ -384996,36 +454340,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:*/ { @@ -385035,7 +454403,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:*/ { @@ -385048,7 +454416,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; @@ -385059,7 +454427,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); @@ -385163,27 +454531,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; @@ -385201,10 +454578,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); @@ -385223,27 +454603,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; @@ -385259,56 +454642,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; @@ -385332,7 +454739,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:*/ { @@ -385360,13 +454767,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; @@ -385383,7 +454790,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:; @@ -385395,27 +454802,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; @@ -385431,56 +454841,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; @@ -385504,7 +454938,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:*/ { @@ -385532,13 +454966,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; @@ -385555,7 +454989,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:; @@ -385567,21 +455001,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; @@ -385605,7 +455039,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:*/ { @@ -385633,13 +455067,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; @@ -385656,7 +455090,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:; @@ -385667,12 +455101,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; @@ -385683,12 +455117,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; @@ -385700,15 +455134,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 @@ -385734,16 +455168,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -385760,18 +455194,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; { @@ -385785,7 +455219,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); @@ -385828,7 +455262,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; @@ -385850,7 +455284,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:; @@ -385863,19 +455297,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; { @@ -385889,7 +455323,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; @@ -385915,29 +455349,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; @@ -385953,75 +455386,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) { @@ -386032,17 +455458,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; @@ -386057,47 +455481,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:*/ { @@ -386107,9 +455523,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); @@ -386126,7 +455542,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; } @@ -386194,7 +455610,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; @@ -386206,12 +455622,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); @@ -386221,38 +455636,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; @@ -386268,75 +455681,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) { @@ -386347,21 +455753,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 @@ -386378,58 +455782,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:*/ { @@ -386439,7 +455834,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:*/ { @@ -386452,14 +455847,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; { @@ -386468,7 +455858,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); @@ -386572,65 +455962,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; @@ -386638,20 +456003,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); @@ -386664,29 +456026,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; @@ -386702,59 +456063,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) { @@ -386762,22 +456116,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; @@ -386794,7 +456144,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:*/ { @@ -386822,47 +456172,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; @@ -386870,29 +456207,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; @@ -386908,59 +456244,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) { @@ -386968,22 +456297,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; @@ -387000,7 +456325,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:*/ { @@ -387028,47 +456353,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; @@ -387076,31 +456388,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; @@ -387117,7 +456426,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:*/ { @@ -387145,59 +456454,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; @@ -387208,12 +456504,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; @@ -387225,15 +456521,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 @@ -387259,16 +456555,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -387285,18 +456581,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; { @@ -387310,7 +456606,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); @@ -387353,7 +456649,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; @@ -387375,7 +456671,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:; @@ -387388,19 +456684,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; { @@ -387414,7 +456710,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; @@ -387440,14 +456736,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 @@ -387457,12 +456753,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; @@ -387478,66 +456773,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) { @@ -387547,16 +456835,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; @@ -387572,55 +456859,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:*/ { @@ -387630,9 +456909,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); @@ -387649,7 +456928,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; } @@ -387717,7 +456996,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; @@ -387729,13 +457008,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); @@ -387751,16 +457029,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 @@ -387770,12 +457048,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; @@ -387791,66 +457068,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) { @@ -387860,11 +457130,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; @@ -387873,8 +457142,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 @@ -387896,60 +457165,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:*/ { @@ -387959,7 +457220,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:*/ { @@ -387972,7 +457233,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; @@ -387983,7 +457244,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); @@ -388087,36 +457348,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; @@ -388134,13 +457392,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); @@ -388159,15 +457416,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 @@ -388177,12 +457434,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; @@ -388198,66 +457454,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) { @@ -388266,12 +457515,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; @@ -388295,7 +457543,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:*/ { @@ -388323,13 +457571,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; @@ -388346,7 +457594,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:; @@ -388358,15 +457606,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 @@ -388376,12 +457624,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; @@ -388397,66 +457644,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) { @@ -388465,12 +457705,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; @@ -388494,7 +457733,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:*/ { @@ -388522,13 +457761,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; @@ -388545,7 +457784,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:; @@ -388557,21 +457796,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; @@ -388595,7 +457834,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:*/ { @@ -388623,13 +457862,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; @@ -388646,7 +457885,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:; @@ -388657,12 +457896,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; @@ -388673,12 +457912,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; @@ -388690,15 +457929,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 @@ -388724,16 +457963,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -388750,18 +457989,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; { @@ -388775,7 +458014,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); @@ -388818,7 +458057,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; @@ -388840,7 +458079,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:; @@ -388853,19 +458092,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; { @@ -388879,7 +458118,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; @@ -388905,28 +458144,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; @@ -388942,87 +458184,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; @@ -389037,39 +458316,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:*/ { @@ -389079,9 +458366,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); @@ -389098,7 +458385,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; } @@ -389166,7 +458453,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; @@ -389178,11 +458465,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); @@ -389192,36 +458480,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; @@ -389237,91 +458529,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 @@ -389338,49 +458667,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:*/ { @@ -389390,7 +458728,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:*/ { @@ -389403,9 +458741,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; { @@ -389414,7 +458757,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); @@ -389518,40 +458861,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; @@ -389559,17 +458927,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); @@ -389582,28 +458953,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; @@ -389619,52 +458991,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) { @@ -389672,18 +459051,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; @@ -389700,7 +459083,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:*/ { @@ -389728,215 +459317,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; @@ -389944,28 +459365,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; @@ -389982,7 +459406,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:*/ { @@ -390010,46 +459434,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; @@ -390060,12 +459497,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; @@ -390077,15 +459514,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 @@ -390111,16 +459548,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -390137,18 +459574,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; { @@ -390162,7 +459599,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); @@ -390205,7 +459642,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; @@ -390227,7 +459664,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:; @@ -390240,19 +459677,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; { @@ -390266,7 +459703,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; @@ -390292,14 +459729,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 @@ -390331,38 +459768,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]; @@ -390370,18 +459807,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) { @@ -390391,7 +459828,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; @@ -390399,7 +459836,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; @@ -390415,47 +459852,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:*/ { @@ -390465,9 +459902,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); @@ -390484,7 +459921,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; } @@ -390552,7 +459989,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; @@ -390564,7 +460001,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); @@ -390585,16 +460022,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 @@ -390626,38 +460063,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]; @@ -390665,18 +460102,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) { @@ -390686,7 +460123,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; @@ -390698,8 +460135,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 @@ -390721,52 +460158,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:*/ { @@ -390776,7 +460213,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:*/ { @@ -390789,7 +460226,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; @@ -390800,7 +460237,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); @@ -390904,33 +460341,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; @@ -390948,7 +460385,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); @@ -390972,15 +460409,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 @@ -391012,57 +460449,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) { @@ -391075,7 +460512,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; @@ -391099,7 +460536,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:*/ { @@ -391127,13 +460564,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; @@ -391150,7 +460587,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:; @@ -391162,15 +460599,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 @@ -391202,57 +460639,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) { @@ -391265,7 +460702,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; @@ -391289,7 +460726,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:*/ { @@ -391317,13 +460754,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; @@ -391340,7 +460777,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:; @@ -391352,21 +460789,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; @@ -391390,7 +460827,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:*/ { @@ -391418,13 +460855,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; @@ -391441,7 +460878,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:; @@ -391452,12 +460889,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; @@ -391468,12 +460905,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; @@ -391485,15 +460922,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 @@ -391519,16 +460956,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -391545,18 +460982,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; { @@ -391570,7 +461007,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); @@ -391613,7 +461050,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; @@ -391635,7 +461072,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:; @@ -391648,19 +461085,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; { @@ -391674,7 +461111,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; @@ -391700,14 +461137,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 @@ -391717,11 +461154,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; @@ -391737,69 +461175,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; @@ -391807,7 +461262,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; @@ -391823,47 +461278,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:*/ { @@ -391873,9 +461328,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); @@ -391892,7 +461347,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; } @@ -391960,7 +461415,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; @@ -391972,7 +461427,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); @@ -391993,16 +461448,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 @@ -392012,11 +461467,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; @@ -392032,69 +461488,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; @@ -392106,8 +461579,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 @@ -392129,52 +461602,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:*/ { @@ -392184,7 +461657,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:*/ { @@ -392197,7 +461670,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; @@ -392208,7 +461681,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); @@ -392312,33 +461785,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; @@ -392356,7 +461829,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); @@ -392380,15 +461853,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 @@ -392420,57 +461893,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) { @@ -392483,7 +461956,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; @@ -392507,7 +461980,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:*/ { @@ -392535,13 +462008,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; @@ -392558,7 +462031,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:; @@ -392570,15 +462043,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 @@ -392610,57 +462083,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) { @@ -392673,7 +462146,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; @@ -392697,7 +462170,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:*/ { @@ -392725,13 +462198,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; @@ -392748,7 +462221,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:; @@ -392760,21 +462233,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; @@ -392798,7 +462271,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:*/ { @@ -392826,13 +462299,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; @@ -392849,7 +462322,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:; @@ -392860,12 +462333,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; @@ -392876,12 +462349,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; @@ -392893,15 +462366,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 @@ -392927,16 +462400,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -392953,18 +462426,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; { @@ -392978,7 +462451,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); @@ -393021,7 +462494,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; @@ -393043,7 +462516,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:; @@ -393056,19 +462529,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; { @@ -393082,7 +462555,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; @@ -393108,29 +462581,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; @@ -393146,75 +462617,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) { @@ -393225,15 +462682,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; @@ -393249,47 +462704,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:*/ { @@ -393299,9 +462738,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); @@ -393318,7 +462757,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; } @@ -393386,7 +462825,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; @@ -393398,12 +462837,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); @@ -393419,31 +462856,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; @@ -393459,75 +462894,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) { @@ -393538,10 +462959,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; @@ -393550,8 +462969,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 @@ -393573,52 +462992,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:*/ { @@ -393628,7 +463031,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:*/ { @@ -393641,7 +463044,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; @@ -393652,7 +463055,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); @@ -393756,33 +463159,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; @@ -393800,12 +463197,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); @@ -393824,29 +463219,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; @@ -393862,72 +463255,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; @@ -393951,7 +463328,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:*/ { @@ -393979,13 +463356,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; @@ -394002,7 +463379,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:; @@ -394014,29 +463391,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; @@ -394052,72 +463427,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; @@ -394141,7 +463500,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:*/ { @@ -394169,13 +463528,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; @@ -394192,7 +463551,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:; @@ -394204,21 +463563,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; @@ -394242,7 +463601,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:*/ { @@ -394270,13 +463629,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; @@ -394293,7 +463652,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:; @@ -394304,12 +463663,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; @@ -394320,12 +463679,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; @@ -394337,15 +463696,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 @@ -394371,16 +463730,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -394397,18 +463756,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; { @@ -394422,7 +463781,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); @@ -394465,7 +463824,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; @@ -394487,7 +463846,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:; @@ -394500,19 +463859,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; { @@ -394526,7 +463885,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; @@ -394552,27 +463911,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; @@ -394588,79 +463949,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; @@ -394675,31 +464060,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:*/ { @@ -394709,9 +464102,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); @@ -394728,7 +464121,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; } @@ -394796,7 +464189,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; @@ -394808,10 +464201,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); @@ -394821,35 +464215,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; @@ -394865,84 +464263,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; @@ -394957,42 +464381,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:*/ { @@ -395002,7 +464439,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:*/ { @@ -395015,9 +464452,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; { @@ -395026,7 +464473,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); @@ -395130,59 +464577,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; @@ -395190,27 +464695,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; @@ -395226,63 +464732,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; @@ -395299,7 +464820,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:*/ { @@ -395322,39 +464847,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; @@ -395362,27 +464908,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; @@ -395398,63 +464945,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; @@ -395471,7 +465033,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:*/ { @@ -395494,138 +465193,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); @@ -395634,12 +465253,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; @@ -395650,12 +465269,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; @@ -395667,15 +465286,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 @@ -395701,16 +465320,16 @@ PyObject *__pyx_args, PyObject *__pyx_kwds const Py_ssize_t __pyx_kwds_len = unlikely(__pyx_kwds) ? __Pyx_NumKwargs_FASTCALL(__pyx_kwds) : 0; if (unlikely(__pyx_kwds_len < 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 @@ -395727,18 +465346,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; { @@ -395752,7 +465371,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); @@ -395795,7 +465414,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; @@ -395817,7 +465436,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:; @@ -395920,48 +465539,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:; @@ -396005,31 +465624,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:*/ { @@ -396126,7 +465745,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; @@ -396197,48 +465816,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:; @@ -396293,36 +465912,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:*/ { @@ -396345,7 +465964,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; @@ -396460,27 +466079,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; @@ -396558,32 +466177,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:; @@ -396657,13 +466276,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; @@ -396730,32 +466349,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:; @@ -396829,13 +466448,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; @@ -396930,13 +466549,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; @@ -397064,10 +466683,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; @@ -397125,7 +466744,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; @@ -397160,16 +466779,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 @@ -397252,7 +466871,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; @@ -397272,7 +466891,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 @@ -397369,16 +466988,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 @@ -397461,7 +467080,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; @@ -397481,7 +467100,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 @@ -399959,6 +469578,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, @@ -400771,6 +470593,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, @@ -401989,6 +472014,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, @@ -415184,6 +485412,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, @@ -416605,6 +487645,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, @@ -417620,6 +489066,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, @@ -418432,6 +490081,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, @@ -419041,6 +490893,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, @@ -419650,6 +491705,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, @@ -421274,6 +493532,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, @@ -422086,6 +494750,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, @@ -425334,6 +498810,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, @@ -428379,6 +502261,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, @@ -428485,7 +502570,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}, @@ -428527,7 +502612,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*/ @@ -429394,6 +503479,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, @@ -431221,6 +505509,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, @@ -431627,6 +506118,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, @@ -432236,6 +506930,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, @@ -433251,6 +508148,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, @@ -434672,6 +509975,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, @@ -437311,6 +513629,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, @@ -438123,6 +514644,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, @@ -438732,6 +515456,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, @@ -438960,16 +515887,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*/ @@ -439035,6 +515965,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*/ @@ -439042,21 +515976,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*/ @@ -439065,10 +516005,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*/ @@ -439085,6 +516031,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*/ @@ -439100,11 +516048,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*/ @@ -439114,16 +516064,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*/ @@ -439131,6 +516086,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*/ @@ -439144,13 +516104,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*/ @@ -439268,14 +516231,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); @@ -439285,8 +516248,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 @@ -439311,11 +516274,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 @@ -439323,7 +516286,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); @@ -439333,8 +516296,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 @@ -439360,11 +516323,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 @@ -439372,7 +516335,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); @@ -439382,8 +516345,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 @@ -439409,11 +516372,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 @@ -439421,7 +516384,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); @@ -439431,8 +516394,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 @@ -439458,11 +516421,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 @@ -439470,7 +516433,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); @@ -439480,8 +516443,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 @@ -439507,11 +516470,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 @@ -439519,7 +516482,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); @@ -439529,8 +516492,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 @@ -439556,11 +516519,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 @@ -439568,7 +516531,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); @@ -439578,8 +516541,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 @@ -439605,11 +516568,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 @@ -439617,7 +516580,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); @@ -439627,8 +516590,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 @@ -439654,11 +516617,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 @@ -439666,7 +516629,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); @@ -439676,8 +516639,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 @@ -439703,11 +516666,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 @@ -439715,7 +516678,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); @@ -439725,8 +516688,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 @@ -439738,6 +516701,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; @@ -439752,11 +516764,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 @@ -439764,7 +516776,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); @@ -439774,8 +516786,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 @@ -439801,11 +516813,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 @@ -439813,7 +516825,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); @@ -439823,8 +516835,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 @@ -439850,11 +516862,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 @@ -439862,7 +516874,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); @@ -439872,8 +516884,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 @@ -439899,11 +516911,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 @@ -439911,7 +516923,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); @@ -439921,8 +516933,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 @@ -439934,6 +516946,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; @@ -439948,11 +517009,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 @@ -439960,7 +517021,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); @@ -439970,8 +517031,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 @@ -439997,11 +517058,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 @@ -440009,7 +517070,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); @@ -440019,8 +517080,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 @@ -440046,11 +517107,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 @@ -440058,7 +517119,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); @@ -440068,8 +517129,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 @@ -440095,11 +517156,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 @@ -440107,7 +517168,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); @@ -440117,8 +517178,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 @@ -440144,11 +517205,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 @@ -440156,7 +517217,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); @@ -440166,8 +517227,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 @@ -440193,11 +517254,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 @@ -440205,7 +517266,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); @@ -440215,8 +517276,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 @@ -440228,6 +517289,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; @@ -440242,11 +517352,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 @@ -440254,7 +517364,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); @@ -440264,8 +517374,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 @@ -440291,11 +517401,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 @@ -440303,7 +517413,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); @@ -440313,8 +517423,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 @@ -440340,11 +517450,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 @@ -440352,7 +517462,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); @@ -440362,8 +517472,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 @@ -440389,11 +517499,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 @@ -440401,7 +517511,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); @@ -440411,8 +517521,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 @@ -440438,11 +517548,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 @@ -440450,7 +517560,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); @@ -440460,8 +517570,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 @@ -440487,11 +517597,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 @@ -440499,7 +517609,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); @@ -440509,8 +517619,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 @@ -440536,11 +517646,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 @@ -440548,7 +517658,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); @@ -440558,8 +517668,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 @@ -440585,11 +517695,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 @@ -440597,7 +517707,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); @@ -440607,8 +517717,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 @@ -440634,11 +517744,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 @@ -440646,7 +517756,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); @@ -440656,8 +517766,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 @@ -440683,11 +517793,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 @@ -440695,7 +517805,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); @@ -440705,8 +517815,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 @@ -440732,11 +517842,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 @@ -440744,7 +517854,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); @@ -440754,8 +517864,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 @@ -440781,11 +517891,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 @@ -440793,7 +517903,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); @@ -440803,8 +517913,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 @@ -440830,11 +517940,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 @@ -440842,7 +517952,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); @@ -440852,8 +517962,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 @@ -440879,11 +517989,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 @@ -440891,7 +518001,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); @@ -440901,8 +518011,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 @@ -440928,11 +518038,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 @@ -440940,7 +518050,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); @@ -440950,8 +518060,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 @@ -440977,11 +518087,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 @@ -440989,7 +518099,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); @@ -440999,8 +518109,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 @@ -441026,11 +518136,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 @@ -441038,7 +518148,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); @@ -441048,8 +518158,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 @@ -441075,11 +518185,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 @@ -441087,7 +518197,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); @@ -441097,8 +518207,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 @@ -441124,11 +518234,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 @@ -441136,7 +518246,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); @@ -441146,8 +518256,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 @@ -441173,11 +518283,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 @@ -441185,7 +518295,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); @@ -441195,8 +518305,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 @@ -441222,11 +518332,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 @@ -441234,7 +518344,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); @@ -441244,8 +518354,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 @@ -441271,11 +518381,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 @@ -441283,7 +518393,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); @@ -441293,8 +518403,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 @@ -441320,11 +518430,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 @@ -441332,7 +518442,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); @@ -441342,8 +518452,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 @@ -441369,11 +518479,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 @@ -441381,7 +518491,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); @@ -441391,8 +518501,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 @@ -441418,11 +518528,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 @@ -441430,7 +518540,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); @@ -441440,8 +518550,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 @@ -441467,11 +518577,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 @@ -441479,7 +518589,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); @@ -441489,8 +518599,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 @@ -441516,11 +518626,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 @@ -441528,7 +518638,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); @@ -441538,8 +518648,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 @@ -441565,11 +518675,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 @@ -441577,7 +518687,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); @@ -441587,8 +518697,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 @@ -441614,11 +518724,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 @@ -441626,7 +518736,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); @@ -441636,8 +518746,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 @@ -441663,11 +518773,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 @@ -441675,7 +518785,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); @@ -441685,8 +518795,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 @@ -441712,11 +518822,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 @@ -441724,7 +518834,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); @@ -441734,8 +518844,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 @@ -441761,11 +518871,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 @@ -441773,7 +518883,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); @@ -441783,8 +518893,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 @@ -441810,11 +518920,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 @@ -441822,7 +518932,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); @@ -441832,8 +518942,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 @@ -441859,11 +518969,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 @@ -441871,7 +518981,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); @@ -441881,8 +518991,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 @@ -441908,11 +519018,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 @@ -441920,7 +519030,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); @@ -441930,8 +519040,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 @@ -441957,11 +519067,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 @@ -441969,7 +519079,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); @@ -441979,8 +519089,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 @@ -442006,11 +519116,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 @@ -442018,7 +519128,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); @@ -442028,8 +519138,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 @@ -442055,11 +519165,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 @@ -442067,7 +519177,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); @@ -442077,8 +519187,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 @@ -442104,11 +519214,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 @@ -442116,7 +519226,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); @@ -442126,8 +519236,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 @@ -442153,11 +519263,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 @@ -442165,7 +519275,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); @@ -442175,8 +519285,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 @@ -442202,11 +519312,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 @@ -442214,7 +519324,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); @@ -442224,8 +519334,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 @@ -442251,11 +519361,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 @@ -442263,7 +519373,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); @@ -442273,8 +519383,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 @@ -442300,11 +519410,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 @@ -442312,7 +519422,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); @@ -442322,8 +519432,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 @@ -442349,11 +519459,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 @@ -442361,7 +519471,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); @@ -442371,8 +519481,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 @@ -442398,11 +519508,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 @@ -442410,7 +519520,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); @@ -442420,8 +519530,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 @@ -442447,11 +519557,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 @@ -442459,7 +519569,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); @@ -442469,8 +519579,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 @@ -442496,11 +519606,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 @@ -442508,7 +519618,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); @@ -442518,8 +519628,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 @@ -442545,11 +519655,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 @@ -442557,7 +519667,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); @@ -442567,8 +519677,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 @@ -442594,11 +519704,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 @@ -442606,7 +519716,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); @@ -442616,8 +519726,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 @@ -442643,11 +519753,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 @@ -442655,7 +519765,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); @@ -442665,8 +519775,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 @@ -442692,11 +519802,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 @@ -442704,7 +519814,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); @@ -442714,8 +519824,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 @@ -442741,11 +519851,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 @@ -442753,7 +519863,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); @@ -442763,8 +519873,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 @@ -442790,11 +519900,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 @@ -442802,7 +519912,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); @@ -442812,8 +519922,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 @@ -442839,11 +519949,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 @@ -442851,7 +519961,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); @@ -442861,8 +519971,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 @@ -442888,11 +519998,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 @@ -442900,7 +520010,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); @@ -442910,8 +520020,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 @@ -442937,11 +520047,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 @@ -442949,7 +520059,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); @@ -442959,8 +520069,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 @@ -442986,11 +520096,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 @@ -442998,7 +520108,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); @@ -443008,8 +520118,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 @@ -443035,11 +520145,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 @@ -443047,7 +520157,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); @@ -443057,8 +520167,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 @@ -443084,11 +520194,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 @@ -443096,7 +520206,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); @@ -443106,8 +520216,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 @@ -443133,11 +520243,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 @@ -443145,7 +520255,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); @@ -443155,8 +520265,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 @@ -443182,11 +520292,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 @@ -443194,7 +520304,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); @@ -443204,8 +520314,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 @@ -443231,11 +520341,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 @@ -443243,7 +520353,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); @@ -443253,8 +520363,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 @@ -443280,11 +520390,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 @@ -443292,7 +520402,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); @@ -443302,8 +520412,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 @@ -443329,11 +520439,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 @@ -443341,7 +520451,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); @@ -443351,8 +520461,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 @@ -443378,11 +520488,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 @@ -443390,7 +520500,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); @@ -443400,8 +520510,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 @@ -443413,6 +520523,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; @@ -443427,11 +520733,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 @@ -443439,7 +520745,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); @@ -443449,8 +520755,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 @@ -443476,11 +520782,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 @@ -443488,7 +520794,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); @@ -443498,8 +520804,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 @@ -443525,11 +520831,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 @@ -443537,7 +520843,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); @@ -443547,8 +520853,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 @@ -443574,11 +520880,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 @@ -443586,7 +520892,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); @@ -443596,8 +520902,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 @@ -443623,11 +520929,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 @@ -443635,7 +520941,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); @@ -443645,8 +520951,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 @@ -443672,11 +520978,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 @@ -443684,7 +520990,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); @@ -443694,8 +521000,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 @@ -443721,11 +521027,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 @@ -443733,7 +521039,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); @@ -443743,8 +521049,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 @@ -443756,6 +521062,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; @@ -443770,11 +521174,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 @@ -443782,7 +521186,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); @@ -443792,8 +521196,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 @@ -443819,11 +521223,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 @@ -443831,7 +521235,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); @@ -443841,8 +521245,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 @@ -443868,11 +521272,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 @@ -443880,7 +521284,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); @@ -443890,8 +521294,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 @@ -443917,11 +521321,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 @@ -443929,7 +521333,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); @@ -443939,8 +521343,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 @@ -443966,11 +521370,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 @@ -443978,7 +521382,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); @@ -443988,8 +521392,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 @@ -444001,6 +521405,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; @@ -444015,11 +521468,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 @@ -444027,7 +521480,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); @@ -444037,8 +521490,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 @@ -444064,11 +521517,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 @@ -444076,7 +521529,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); @@ -444086,8 +521539,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 @@ -444113,11 +521566,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 @@ -444125,7 +521578,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); @@ -444135,8 +521588,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 @@ -444162,11 +521615,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 @@ -444174,7 +521627,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); @@ -444184,8 +521637,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 @@ -444197,6 +521650,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; @@ -444211,11 +521713,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 @@ -444223,7 +521725,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); @@ -444233,8 +521735,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 @@ -444260,11 +521762,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 @@ -444272,7 +521774,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); @@ -444282,8 +521784,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 @@ -444309,11 +521811,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 @@ -444321,7 +521823,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); @@ -444331,8 +521833,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 @@ -444344,6 +521846,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; @@ -444358,11 +521909,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 @@ -444370,7 +521921,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); @@ -444380,8 +521931,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 @@ -444407,11 +521958,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 @@ -444419,7 +521970,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); @@ -444429,8 +521980,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 @@ -444456,11 +522007,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 @@ -444468,7 +522019,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); @@ -444478,8 +522029,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 @@ -444491,6 +522042,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; @@ -444505,11 +522105,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 @@ -444517,7 +522117,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); @@ -444527,8 +522127,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 @@ -444554,11 +522154,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 @@ -444566,7 +522166,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); @@ -444576,8 +522176,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 @@ -444603,11 +522203,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 @@ -444615,7 +522215,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); @@ -444625,8 +522225,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 @@ -444652,11 +522252,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 @@ -444664,7 +522264,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); @@ -444674,8 +522274,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 @@ -444701,11 +522301,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 @@ -444713,7 +522313,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); @@ -444723,8 +522323,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 @@ -444750,11 +522350,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 @@ -444762,7 +522362,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); @@ -444772,8 +522372,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 @@ -444799,11 +522399,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 @@ -444811,7 +522411,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); @@ -444821,8 +522421,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 @@ -444848,11 +522448,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 @@ -444860,7 +522460,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); @@ -444870,8 +522470,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 @@ -444883,6 +522483,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; @@ -444897,11 +522595,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 @@ -444909,7 +522607,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); @@ -444919,8 +522617,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 @@ -444946,11 +522644,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 @@ -444958,7 +522656,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); @@ -444968,8 +522666,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 @@ -444995,11 +522693,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 @@ -445007,7 +522705,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); @@ -445017,8 +522715,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 @@ -445044,11 +522742,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 @@ -445056,7 +522754,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); @@ -445066,8 +522764,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 @@ -445079,6 +522777,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; @@ -445093,11 +522987,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 @@ -445105,7 +522999,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); @@ -445115,8 +523009,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 @@ -445142,11 +523036,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 @@ -445154,7 +523048,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); @@ -445164,8 +523058,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 @@ -445191,11 +523085,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 @@ -445203,7 +523097,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); @@ -445213,8 +523107,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 @@ -445240,11 +523134,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 @@ -445252,7 +523146,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); @@ -445262,8 +523156,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 @@ -445289,11 +523183,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 @@ -445301,7 +523195,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); @@ -445311,8 +523205,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 @@ -445338,11 +523232,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 @@ -445350,7 +523244,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); @@ -445360,8 +523254,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 @@ -445387,11 +523281,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 @@ -445399,7 +523293,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); @@ -445409,8 +523303,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 @@ -445436,11 +523330,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 @@ -445448,7 +523342,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); @@ -445458,8 +523352,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 @@ -445485,11 +523379,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 @@ -445497,7 +523391,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); @@ -445507,8 +523401,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 @@ -445534,11 +523428,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 @@ -445546,7 +523440,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); @@ -445556,8 +523450,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 @@ -445583,11 +523477,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 @@ -445595,7 +523489,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); @@ -445605,8 +523499,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 @@ -445632,11 +523526,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 @@ -445644,7 +523538,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); @@ -445654,8 +523548,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 @@ -445681,11 +523575,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 @@ -445693,7 +523587,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); @@ -445703,8 +523597,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 @@ -445730,11 +523624,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 @@ -445742,7 +523636,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); @@ -445752,8 +523646,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 @@ -445779,11 +523673,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 @@ -445791,7 +523685,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); @@ -445801,8 +523695,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 @@ -445828,11 +523722,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 @@ -445840,7 +523734,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); @@ -445850,8 +523744,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 @@ -445863,6 +523757,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; @@ -445877,11 +523869,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 @@ -445889,7 +523881,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); @@ -445899,8 +523891,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 @@ -445926,11 +523918,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 @@ -445938,7 +523930,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); @@ -445948,8 +523940,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 @@ -445975,11 +523967,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 @@ -445987,7 +523979,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); @@ -445997,8 +523989,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 @@ -446024,11 +524016,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 @@ -446036,7 +524028,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); @@ -446046,8 +524038,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 @@ -446073,11 +524065,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 @@ -446085,7 +524077,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); @@ -446095,8 +524087,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 @@ -446122,11 +524114,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 @@ -446134,7 +524126,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); @@ -446144,8 +524136,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 @@ -446171,11 +524163,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 @@ -446183,7 +524175,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); @@ -446193,8 +524185,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 @@ -446220,11 +524212,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 @@ -446232,7 +524224,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); @@ -446242,8 +524234,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 @@ -446269,11 +524261,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 @@ -446281,7 +524273,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); @@ -446291,8 +524283,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 @@ -446318,11 +524310,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 @@ -446330,7 +524322,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); @@ -446340,8 +524332,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 @@ -446367,11 +524359,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 @@ -446379,7 +524371,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); @@ -446389,8 +524381,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 @@ -446416,11 +524408,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 @@ -446428,7 +524420,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); @@ -446438,8 +524430,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 @@ -446465,11 +524457,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 @@ -446477,7 +524469,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); @@ -446487,8 +524479,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 @@ -446514,11 +524506,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 @@ -446526,7 +524518,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); @@ -446536,8 +524528,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 @@ -446563,11 +524555,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 @@ -446575,7 +524567,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); @@ -446585,8 +524577,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 @@ -446598,6 +524590,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; @@ -446612,11 +524653,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 @@ -446624,7 +524665,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); @@ -446634,8 +524675,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 @@ -446661,11 +524702,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 @@ -446673,7 +524714,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); @@ -446683,8 +524724,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 @@ -446710,11 +524751,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 @@ -446722,7 +524763,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); @@ -446732,8 +524773,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 @@ -446759,11 +524800,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 @@ -446771,7 +524812,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); @@ -446781,8 +524822,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 @@ -446808,11 +524849,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 @@ -446820,7 +524861,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); @@ -446830,8 +524871,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 @@ -446843,6 +524884,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; @@ -446857,11 +524947,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 @@ -446869,7 +524959,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); @@ -446879,8 +524969,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 @@ -446906,11 +524996,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 @@ -446918,7 +525008,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); @@ -446928,8 +525018,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 @@ -446955,11 +525045,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 @@ -446967,7 +525057,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); @@ -446977,8 +525067,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 @@ -447004,11 +525094,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 @@ -447016,7 +525106,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); @@ -447026,8 +525116,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 @@ -447053,11 +525143,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 @@ -447065,7 +525155,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); @@ -447075,8 +525165,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 @@ -447102,11 +525192,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 @@ -447114,7 +525204,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); @@ -447124,8 +525214,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 @@ -447151,11 +525241,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 @@ -447163,7 +525253,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); @@ -447173,8 +525263,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 @@ -447200,11 +525290,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 @@ -447212,7 +525302,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); @@ -447222,8 +525312,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 @@ -447249,11 +525339,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 @@ -447261,7 +525351,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); @@ -447271,8 +525361,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 @@ -447284,6 +525374,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; @@ -447298,11 +525437,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 @@ -447310,7 +525449,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); @@ -447320,8 +525459,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 @@ -447347,11 +525486,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 @@ -447359,7 +525498,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); @@ -447369,8 +525508,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 @@ -447382,6 +525521,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; @@ -447396,11 +525584,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 @@ -447408,7 +525596,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); @@ -447418,8 +525606,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 @@ -447445,11 +525633,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 @@ -447457,7 +525645,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); @@ -447467,8 +525655,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 @@ -447494,11 +525682,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 @@ -447506,7 +525694,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); @@ -447516,8 +525704,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 @@ -447529,6 +525717,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; @@ -447543,11 +525780,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 @@ -447555,7 +525792,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); @@ -447565,8 +525802,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 @@ -447592,11 +525829,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 @@ -447604,7 +525841,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); @@ -447614,8 +525851,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 @@ -447641,11 +525878,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 @@ -447653,7 +525890,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); @@ -447663,8 +525900,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 @@ -447690,11 +525927,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 @@ -447702,7 +525939,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); @@ -447712,8 +525949,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 @@ -447739,11 +525976,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 @@ -447751,7 +525988,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); @@ -447761,8 +525998,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 @@ -447774,6 +526011,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; @@ -447788,11 +526123,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 @@ -447800,7 +526135,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); @@ -447810,8 +526145,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 @@ -447837,11 +526172,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 @@ -447849,7 +526184,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); @@ -447859,8 +526194,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 @@ -447886,11 +526221,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 @@ -447898,7 +526233,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); @@ -447908,8 +526243,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 @@ -447935,11 +526270,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 @@ -447947,7 +526282,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); @@ -447957,8 +526292,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 @@ -447984,11 +526319,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 @@ -447996,7 +526331,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); @@ -448006,8 +526341,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 @@ -448033,11 +526368,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 @@ -448045,7 +526380,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); @@ -448055,8 +526390,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 @@ -448082,11 +526417,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 @@ -448094,7 +526429,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); @@ -448104,8 +526439,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 @@ -448117,6 +526452,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; @@ -448131,11 +526711,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 @@ -448143,7 +526723,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); @@ -448153,8 +526733,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 @@ -448180,11 +526760,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 @@ -448192,7 +526772,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); @@ -448202,8 +526782,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 @@ -448229,11 +526809,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 @@ -448241,7 +526821,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); @@ -448251,8 +526831,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 @@ -448278,11 +526858,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 @@ -448290,7 +526870,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); @@ -448300,8 +526880,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 @@ -448327,11 +526907,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 @@ -448339,7 +526919,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); @@ -448349,8 +526929,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 @@ -448376,11 +526956,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 @@ -448388,7 +526968,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); @@ -448398,8 +526978,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 @@ -448425,11 +527005,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 @@ -448437,7 +527017,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); @@ -448447,8 +527027,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 @@ -448474,11 +527054,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 @@ -448486,7 +527066,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); @@ -448496,8 +527076,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 @@ -448523,11 +527103,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 @@ -448535,7 +527115,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); @@ -448545,8 +527125,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 @@ -448572,11 +527152,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 @@ -448584,7 +527164,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); @@ -448594,8 +527174,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 @@ -448621,11 +527201,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 @@ -448633,7 +527213,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); @@ -448643,8 +527223,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 @@ -448670,11 +527250,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 @@ -448682,7 +527262,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); @@ -448692,8 +527272,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 @@ -448719,11 +527299,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 @@ -448731,7 +527311,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); @@ -448741,8 +527321,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 @@ -448754,6 +527334,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; @@ -448768,11 +527397,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 @@ -448780,7 +527409,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); @@ -448790,8 +527419,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 @@ -448817,11 +527446,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 @@ -448829,7 +527458,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); @@ -448839,8 +527468,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 @@ -448866,11 +527495,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 @@ -448878,7 +527507,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); @@ -448888,8 +527517,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 @@ -448915,11 +527544,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 @@ -448927,7 +527556,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); @@ -448937,8 +527566,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 @@ -448950,6 +527579,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; @@ -448964,11 +527642,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 @@ -448976,7 +527654,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); @@ -448986,8 +527664,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 @@ -449013,11 +527691,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 @@ -449025,7 +527703,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); @@ -449035,8 +527713,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 @@ -449062,11 +527740,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 @@ -449074,7 +527752,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); @@ -449084,8 +527762,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 @@ -449097,6 +527775,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; @@ -449111,11 +527838,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 @@ -449123,7 +527850,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); @@ -449133,8 +527860,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 @@ -449533,19 +528260,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; @@ -449641,16 +528370,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) @@ -449716,6 +528448,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) @@ -449723,21 +528459,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) @@ -449746,10 +528488,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) @@ -449766,6 +528514,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) @@ -449781,11 +528531,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) @@ -449795,16 +528547,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) @@ -449812,6 +528569,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) @@ -449825,13 +528587,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); @@ -449995,7 +528760,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) @@ -450003,23 +528768,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:; @@ -450053,6 +528818,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); @@ -450062,12 +528831,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) @@ -450082,7 +528851,7 @@ __Pyx_RefNannySetupContext("PyInit__ta_lib", 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_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; { @@ -450090,267 +528859,335 @@ __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, 192, __pyx_L1_error) + 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, 192, __pyx_L1_error) + 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(25); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 200, __pyx_L1_error) + __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, 200, __pyx_L1_error) + 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_ADX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 201, __pyx_L1_error) + __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_ADX, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_ATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 202, __pyx_L1_error) + __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_ATR, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_CMO); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 203, __pyx_L1_error) + __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_CMO, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_DX); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 204, __pyx_L1_error) + __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_DX, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_EMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 205, __pyx_L1_error) + __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_EMA, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_DCPERIOD); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 206, __pyx_L1_error) + __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_DCPERIOD, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_DCPHASE); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 207, __pyx_L1_error) + __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_DCPHASE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_PHASOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 208, __pyx_L1_error) + __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); - 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_HT_SINE, __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_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_SINE, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __pyx_L1_error) + 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_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_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_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_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_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_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_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_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_KAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 212, __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_KAMA, __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_MAMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 213, __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_MAMA, __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_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_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_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_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_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_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_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_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_NATR); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 216, __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_NATR, __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_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_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_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_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_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_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_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_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_RSI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 219, __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_RSI, __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_T3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 220, __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_T3, __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_RMA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 221, __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_RMA, __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_HA); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 222, __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_HA, __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_RVI); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 223, __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_RVI, __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_ALL); 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_ALL, __pyx_t_5) < (0)) __PYX_ERR(1, 200, __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) + __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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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, 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, 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, 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_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_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_PyDict_NewPresized(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 233, __pyx_L1_error) + __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 (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 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; { @@ -450358,74 +529195,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; { @@ -450433,26 +529270,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; { @@ -450463,10 +529300,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; } } @@ -450474,11 +529311,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) @@ -450496,7 +529333,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); @@ -450515,7 +529352,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); @@ -450525,7 +529362,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); @@ -450533,7 +529370,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); @@ -450541,7 +529378,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); @@ -450561,7 +529398,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); @@ -450580,7 +529417,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); @@ -450599,7 +529436,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); @@ -450618,7 +529455,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); @@ -450630,2867 +529467,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; - __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) + 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_2); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __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; - 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_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_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_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_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_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_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_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_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_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_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_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_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_CDL3INSIDE, __pyx_t_2) < (0)) __PYX_ERR(6, 1302, __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_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; - { - 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_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 + 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_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_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 - __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_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_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_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_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 - 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) + __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_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, 4892, __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, 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_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_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_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_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_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4206, __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_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_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 - __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) + 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, 4247, __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, 4245, __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_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_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_DX, __pyx_t_3) < (0)) __PYX_ERR(6, 4245, __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_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 4290, __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); - } - __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_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 - __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) + 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, 4332, __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, 4330, __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_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_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_EMA, __pyx_t_3) < (0)) __PYX_ERR(6, 4330, __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, 4373, __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[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); + 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_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_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_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_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_ER, __pyx_t_3) < (0)) __PYX_ERR(6, 4371, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __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; + + __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_13); + #endif + 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, 4414, __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, 4412, __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_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_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_ERI, __pyx_t_3) < (0)) __PYX_ERR(6, 4412, __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_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_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); - #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) + { + PyObject* __pyx_temp[1] = {__pyx_t_3}; + __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_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 - 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_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, 4538, __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, 4536, __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_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_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_FOSC, __pyx_t_3) < (0)) __PYX_ERR(6, 4536, __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, 4579, __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_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4579, __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, 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[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[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_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_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_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_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #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_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_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4676, __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, 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_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[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_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); + __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_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_11); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #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_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_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_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_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); - #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_DCPHASE, __pyx_t_11) < (0)) __PYX_ERR(6, 4754, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __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); - __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) + { + 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_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __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_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); + __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_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_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_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_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); - #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_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); - __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[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_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_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_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_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_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __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); { - 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_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_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_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 - __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_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_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 4999, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __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); { - 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[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_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_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 - __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_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, 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, 5999, __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, 5997, __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_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_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, __pyx_t_5) < (0)) __PYX_ERR(6, 5997, __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, 6040, __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, 6038, __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_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_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_ANGLE, __pyx_t_5) < (0)) __PYX_ERR(6, 6038, __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_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[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); + 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_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_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_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; + __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; - __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, 6122, __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, 5183, __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_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_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_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_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, 5226, __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, 5224, __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_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_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_INTERCEPT, __pyx_t_2) < (0)) __PYX_ERR(6, 5224, __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, 5267, __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, 5265, __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_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); + __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_SLOPE, __pyx_t_2) < (0)) __PYX_ERR(6, 5265, __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_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_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); - __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_GOTREF(__pyx_t_2); + { + 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_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 - 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_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, 5386, __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); - __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); + 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_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); + __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_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_2); #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_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_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, 7057, __pyx_L1_error) + __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[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); + 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_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_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_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_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, 7098, __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); - __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); { - 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[1] = {__pyx_t_3}; + __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_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_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_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #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_RVI, __pyx_t_10) < (0)) __PYX_ERR(6, 7096, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __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_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_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_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[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[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_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_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_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_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_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_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_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[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[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_10); __pyx_t_10 = 0; + __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; - __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_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_5); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #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_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_5 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 7224, __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_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, 8386, __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_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[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_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_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_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_SI, __pyx_t_4) < (0)) __PYX_ERR(6, 8384, __pyx_L1_error) __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_GOTREF(__pyx_t_12); + + __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_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #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_DECREF(__pyx_t_12); __pyx_t_12 = 0; + 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_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_GOTREF(__pyx_t_12); + __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_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; + 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_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, 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_12); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); #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_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_12 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_12)) __PYX_ERR(6, 7351, __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, 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[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[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_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 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_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_17); + #endif + __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_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_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, 8637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __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[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_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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_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_SMA, __pyx_t_12) < (0)) __PYX_ERR(6, 7349, __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_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, 8688, __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_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[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) + 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_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_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_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_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_SMI, __pyx_t_4) < (0)) __PYX_ERR(6, 7390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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); - #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_SQRT, __pyx_t_4) < (0)) __PYX_ERR(6, 7439, __pyx_L1_error) + 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_4 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 7480, __pyx_L1_error) + __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, 7480, __pyx_L1_error) + __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_2 = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 7478, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __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_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_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_11); #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_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_11 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_11)) __PYX_ERR(6, 7522, __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_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_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_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_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[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[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_2); __pyx_t_2 = 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_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_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_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_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, 7572, __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_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_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[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[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_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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_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_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_13); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_5); #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_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_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_5); + #endif + 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_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[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_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_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_SUPERTREND, __pyx_t_3) < (0)) __PYX_ERR(6, 8998, __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, 9047, __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, 9045, __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_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_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_SWAK_2PHP, __pyx_t_3) < (0)) __PYX_ERR(6, 9045, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_13 = __Pyx_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 7620, __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); - __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[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_3); __pyx_t_3 = 0; __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); + __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_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_STOCHRSI, __pyx_t_12) < (0)) __PYX_ERR(6, 7618, __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_BP, __pyx_t_13) < (0)) __PYX_ERR(6, 9086, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 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_PyLong_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_13)) __PYX_ERR(6, 9130, __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, 9128, __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_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; @@ -453506,6 +533175,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; @@ -453513,149 +533184,161 @@ __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_numbers, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numbers, -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_numbers, __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_numpy, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_numpy, -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_numpy, __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_29 = __Pyx_Import(__pyx_mstate_global->__pyx_n_u_operator, 0, 0, __pyx_mstate_global->__pyx_kp_u_talib_operator, -1); if (unlikely(!__pyx_t_29)) __PYX_ERR(2, 12, __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_operator, __pyx_t_4) < (0)) __PYX_ERR(2, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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, 13, __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, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_27 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_27 == ((int)-1))) __PYX_ERR(2, 19, __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, 22, __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, 22, __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, 22, __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, 22, __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, 22, __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, 22, __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, 28, __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, 28, __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, 29, __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, 29, __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, 33, __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, 33, __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, 34, __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, 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; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 34, __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_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_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_ARRAY_TYPES); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 35, __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, 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_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __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_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_t_31 = __Pyx_PyObject_Append(__pyx_t_3, __pyx_t_5); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 35, __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_5, __pyx_mstate_global->__pyx_n_u_pandas); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 36, __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, 36, __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, 36, __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, 37, __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, 37, __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, 37, __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:; @@ -453672,6 +533355,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; @@ -453679,65 +533364,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, 38, __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, 38, __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, 40, __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, 40, __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, 40, __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, 40, __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_ERR(2, 40, __pyx_L24_error) + __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_12)) __PYX_ERR(2, 42, __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, 42, __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; @@ -453750,117 +533435,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_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 47, __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; + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_PANDAS_SERIES, Py_None) < (0)) __PYX_ERR(2, 48, __pyx_L18_except_error) + __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, 52, __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, 52, __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, 53, __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, 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; + __pyx_t_31 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_5); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(2, 53, __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, 54, __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, 54, __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, 54, __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, 54, __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, 55, __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, 55, __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, 55, __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, 56, __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, 56, __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, 56, __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; @@ -453876,6 +533563,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; @@ -453883,65 +533572,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, 57, __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, 57, __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, 59, __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, 59, __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, 59, __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, 59, __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_ERR(2, 59, __pyx_L45_error) + __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_mstate_global->__pyx_n_u_import_error); if (unlikely(!__pyx_t_13)) __PYX_ERR(2, 61, __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, 61, __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; @@ -453954,5217 +533643,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_DATAFRAME, Py_None) < (0)) __PYX_ERR(2, 66, __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) + if (PyDict_SetItem(__pyx_mstate_global->__pyx_d, __pyx_mstate_global->__pyx_n_u_POLARS_SERIES, Py_None) < (0)) __PYX_ERR(2, 67, __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, 69, __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, 69, __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, 69, __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, 70, __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, 70, __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, 70, __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, 73, __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, 73, __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, 73, __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, 75, __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, 75, __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, 78, __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, 78, __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, 83, __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, 83, __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, 86, __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, 86, __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, 89, __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, 89, __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, 89, __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, 89, __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, 118, __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, 118, __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, 131, __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, 131, __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, 131, __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, 173, __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, 173, __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, 173, __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, 180, __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, 180, __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, 180, __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, 187, __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, 187, __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, 187, __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, 194, __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, 194, __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, 205, __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, 205, __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) + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 215, __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, 215, __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, 215, __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, 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_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, 217, __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, 217, __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, 228, __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, 228, __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) + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 275, __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, 275, __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, 275, __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, 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_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, 277, __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, 277, __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, 287, __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, 287, __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, 298, __pyx_L1_error) + if (unlikely(!__pyx_t_11)) __PYX_ERR(2, 302, __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, 298, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + if (unlikely(!__pyx_t_17)) __PYX_ERR(2, 302, __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, 298, __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, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_12) < (0)) __PYX_ERR(2, 298, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_mstate_global->__pyx_n_u_parameters, __pyx_t_13) < (0)) __PYX_ERR(2, 302, __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_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, 300, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __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, 304, __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_function_args, __pyx_t_12) < (0)) __PYX_ERR(2, 300, __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_function_args, __pyx_t_13) < (0)) __PYX_ERR(2, 304, __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, 339, __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, 339, __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, 339, __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, 362, __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, 362, __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, 362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 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, 335, __pyx_L1_error) + __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, 372, __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_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, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + 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, 372, __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, 372, __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, 404, __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, 404, __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, 416, __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, 416, __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, 483, __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, 483, __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, 495, __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, 495, __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__opt_input_value, 0, __pyx_mstate_global->__pyx_n_u_Function___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, 526, __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__opt_input_value, __pyx_t_13) < (0)) __PYX_ERR(2, 526, __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, 546, __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, 546, __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, 556, __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, 556, __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, 559, __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, 559, __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, 562, __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, 562, __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, 89, __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, 89, __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, 576, __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, 576, __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, 596, __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, 596, __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, 616, __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, 616, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 631, __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, 630, __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, 646, __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, 646, __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, 646, __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, 646, __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, 646, __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, 646, __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, 646, __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, 646, __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, 645, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 656, __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, 655, __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, 674, __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, 674, __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, 697, __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, 697, __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, 722, __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, 722, __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, 748, __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, 748, __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, 772, __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, 772, __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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_lookback, __pyx_t_12) < (0)) __PYX_ERR(2, 335, __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_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, 358, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_10); + __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_10); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); #endif + __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_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, 358, __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, 5016, __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, 358, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + 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_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, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_11); + __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_11); + 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_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_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, 368, __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, 5154, __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, 368, __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_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, 400, __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 - __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, 400, __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_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, 412, __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_call, __pyx_t_12) < (0)) __PYX_ERR(2, 412, __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_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, 478, __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__input_price_series_na, __pyx_t_12) < (0)) __PYX_ERR(2, 478, __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_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, 490, __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__call_function, __pyx_t_12) < (0)) __PYX_ERR(2, 490, __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_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, 521, __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_Function__check_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 521, __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_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, 536, __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_Function__get_opt_input_value, __pyx_t_12) < (0)) __PYX_ERR(2, 536, __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_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, 546, __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_repr, __pyx_t_12) < (0)) __PYX_ERR(2, 546, __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_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, 549, __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 (__Pyx_SetNameInClass(__pyx_t_4, __pyx_mstate_global->__pyx_n_u_unicode, __pyx_t_12) < (0)) __PYX_ERR(2, 549, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 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_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, 552, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_12); + __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_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, 552, __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_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_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_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_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_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_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, 566, __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_ta_getGroupTable, __pyx_t_2) < (0)) __PYX_ERR(2, 566, __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_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, 586, __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_getFuncTable, __pyx_t_2) < (0)) __PYX_ERR(2, 586, __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_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, 606, __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_get_flags, __pyx_t_2) < (0)) __PYX_ERR(2, 606, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyDict_NewPresized(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 621, __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, 621, __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, 621, __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, 621, __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, 621, __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, 621, __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, 621, __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, 621, __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, 621, __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, 620, __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, 633, __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, 633, __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, 633, __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, 633, __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, 633, __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, 633, __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, 633, __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, 633, __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, 632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_PyDict_NewPresized(14); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 643, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_mstate_global->__pyx_int_128, __pyx_mstate_global->__pyx_kp_u_Strength_Pattern_200_100_Bearish) < (0)) __PYX_ERR(2, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 643, __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, 642, __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_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, 659, __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_getFuncInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 659, __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_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, 682, __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_getInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 682, __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_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, 707, __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_ta_getOptInputParameterInfo, __pyx_t_2) < (0)) __PYX_ERR(2, 707, __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 *__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); + } + 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_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, 733, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __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_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, 733, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __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 *__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); + } + 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_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, 757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __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_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, 757, __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; - - { - 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) - } - __pyx_t_2 = __pyx_t_27; - __Pyx_GOTREF(__pyx_t_2); + 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* 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_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); } - __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_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_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_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_copy_2, __pyx_t_4) < (0)) __PYX_ERR(3, 2542, __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_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) - __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_deepcopy, __pyx_t_4) < (0)) __PYX_ERR(3, 2545, __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_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) + 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); - #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000 - PyUnstable_Object_EnableDeferredRefcount(__pyx_t_4); - #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_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_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) - __Pyx_GOTREF(__pyx_t_4); + __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); - #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); + PyUnstable_Object_EnableDeferredRefcount(__pyx_t_3); + #endif + __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); + 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_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); + __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 ---*/ @@ -459189,6 +539712,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); @@ -459224,9 +539749,9 @@ static int __Pyx_InitCachedBuiltins(__pyx_mstatetype *__pyx_mstate) { int __pyx_clineno = 0; 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_enumerate = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(2, 322, __pyx_L1_error) + __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_mstate->__pyx_n_u_property); if (!__pyx_builtin_property) __PYX_ERR(2, 131, __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, 326, __pyx_L1_error) /* Cached unbound methods */ __pyx_mstate->__pyx_umethod_PyDict_Type_items.type = (PyObject*)&PyDict_Type; @@ -459258,35 +539783,35 @@ 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]); { PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_index}; - __pyx_mstate_global->__pyx_tuple[2] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(2, 385, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[2] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[2])) __PYX_ERR(2, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[2]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[2]); { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_index, __pyx_mstate_global->__pyx_n_u_columns}; - __pyx_mstate_global->__pyx_tuple[3] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(2, 387, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[3] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[3])) __PYX_ERR(2, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[3]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[3]); { PyObject* __pyx_temp[1] = {__pyx_mstate_global->__pyx_n_u_schema}; - __pyx_mstate_global->__pyx_tuple[4] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(2, 395, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[4] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[4])) __PYX_ERR(2, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[4]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[4]); { PyObject* __pyx_temp[2] = {__pyx_mstate_global->__pyx_n_u_real, __pyx_mstate_global->__pyx_n_u_price}; - __pyx_mstate_global->__pyx_tuple[5] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(2, 698, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[5] = __Pyx_PyTuple_FromArray(__pyx_temp, 2); if (unlikely(!__pyx_mstate_global->__pyx_tuple[5])) __PYX_ERR(2, 713, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[5]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[5]); @@ -459306,207 +539831,270 @@ 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]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[12] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[12])) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[12] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[12])) __PYX_ERR(2, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[12]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[12]); { PyObject* __pyx_temp[1] = {__pyx_builtin_object}; - __pyx_mstate_global->__pyx_tuple[13] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[13])) __PYX_ERR(2, 87, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[13] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[13])) __PYX_ERR(2, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[13]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[13]); { PyObject* __pyx_temp[1] = {Py_None}; - __pyx_mstate_global->__pyx_tuple[14] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[14])) __PYX_ERR(2, 285, __pyx_L1_error) + __pyx_mstate_global->__pyx_tuple[14] = __Pyx_PyTuple_FromArray(__pyx_temp, 1); if (unlikely(!__pyx_mstate_global->__pyx_tuple[14])) __PYX_ERR(2, 287, __pyx_L1_error) __Pyx_GOTREF(__pyx_mstate_global->__pyx_tuple[14]); } __Pyx_GIVEREF(__pyx_mstate_global->__pyx_tuple[14]); { 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 @@ -459540,43 +540128,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},{26},{28},{57},{28},{11},{11},{33},{26},{38},{28},{31},{36},{19},{55},{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},{29},{21},{24},{26},{8},{11},{14},{88},{21},{132},{61},{41},{35},{25},{33},{52},{13},{30},{30},{31},{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},{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},{497},{167},{36},{86},{96}}; + 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},{13},{11},{14},{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},{30},{17},{35},{16},{26},{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},{8},{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},{4},{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},{30},{35},{16},{20},{15},{18},{26},{19},{28},{17},{14},{17},{14},{13},{23},{22},{31},{33},{14},{24},{23},{32},{34},{20},{21},{7},{12},{8},{15},{17},{8},{12},{8},{7},{9},{8},{8},{11},{21},{11},{12},{8},{26},{7},{8},{13},{10},{15},{8},{7},{17},{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},{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},{4},{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},{7},{5},{6},{6},{15},{4},{12},{13},{8},{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},{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},{289},{44},{17},{21},{17},{51},{146},{144},{241},{500},{167},{36},{86},{118}}; #ifndef CYTHON_COMPRESS_STRINGS #define CYTHON_COMPRESS_STRINGS 90 #endif - #if (CYTHON_COMPRESS_STRINGS) == 2 /* compression: bz2 (21035 bytes) */ -static const char cstring[] = "BZh91AY&SY\353HC\006\000!q\177\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\300@@@@@@@@@@@@\000@\000`h\236\361\366\313\304\316\340\000\000\000\360o\033\200\001\030T\000\357\023\273\0009\001\320\034\360\005\274{v\264P\351O8\003M\357Z\335\366\325]\257\261\224\326\000t^\373\275\346\220\357x\335\351\244}\276\267\337M\2705\212\203\341\333\275\231\261\233\353\336\372\237a@\371\354\017{v\275\336o>\360\373\273\214\370\275pU\362l\000\000\000\033OS\317\274\364}\356t\222\232$_\030\330\000h\000\005\337u\036\361OE\333\336\314Yr{\331\333\315\360\000^$\276y\337m\325\255\253\332\047\235\225\344\353\266{\267\244\253 \344\325t\367v\367\272\366\250\357\240\316{\243[\355\357`\325,\331$\263q\221@\000\000iJ\000\000\001\247Q\000\005\322\305T\273\313\351\264ew\326\247/\266\003\256Vh\0006\360I\"\004\020`&\000L\004\323@C\006\230 \224\362\214Bz\236\211\223\3654\365@\361LA\246#ji\241\265\032h\364\203M\004\320\020\"&E2\236I=\204\365\nz\232zO&\033\365U\032\030\215\244\320\032\000\003FA\243j\003\020\315F\206@\032\233\324\365)\010\004i2z$zM2\036\240\036\223#\324\0004\000\000\000\000\000\000\000\000\000\t4\222\010\201&I\351\2404h\023)\346\246L\211\246\ni\344\312h\003\324zM\000\001\240\000\320\006\200\000\001\022H\022\n\032\232\247\352mS\364e3Ll$\217F\304R~D\243\366MS\364f\230\023\023BhQ\352F\375\004\362\230\231\242\236\206\244\366\223\364S\322\202%\020L &F\2020\010\231OL\223\rI\2621F\2312\203\322z\203\032O\0244\003\020yA\240\00014?\270\242\n\234\216K\247\007V>\235z\234\312\365+\233Xa\216\026\247b\233_J\030\300\304\330D\255\"\326V\033\341\313\267\034~\267\047\010rp\372\276O4=\212\036de\355\332c6\326\332\205g\202M0S\031\n\326\025\025b\324\251Y[l)i\024X\244\rSb\223\377\237s\330\273\300^1\005d@d\001i\026\221\025)\000T\017z \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.~\317\247\302I\366\177O\347\374\276\277\347\366*U\177s\366\244\013~\350\025\375\357\306F\306\216\005\005\266K\321\022\303Tm\254""\216\367\032\232$P\341)\233\004fh\030\245\210\016\005.(,\212\266\275\205\020D]A\024\250\026f[D\304\207\240TXV \211%\251G\212*l\241\350%\032\205@\2414l\324c\241v\201\216}\327\346\361\177o\302%\177\320P>!A\373\304.P?\001p\377\2610\302\377\300\260\t2.\034\257\240*\250\2507\212\tW\232\311$&\027O&\361\201\311fBB\211\r\202\"\273\327`+\243\226f m\232\300$/\033\355\256g\0207\234d\331!\002\350\000\342\377\357\377\207\375\347)c\260\207\347f\303\227u\023\222\352\363\322\336{\047\350\036\213\210\325\007\244\233\023\201\376\000\003l}\272\253\177\207%\000\376\030\370\t\023\275_\374c\005\023\250\301\256\303\374\203p\232P\214$\343\034\253~\250\341-\241\262\200\350\202\232\"k\240\341\177\312*\023[e\322*A\236\377\346\265Q446th\301\t\326\373\252\345\217\353X\0018\334p3\201\006Q\005\260:^t\025l0E\306n7\\\001\372\342\0163q\376z\216@)\221\233\2368L\004\254\315Y@ n0\177\321\271\272\005\337\001\2200\272\236!\354$(\005\017\026?\351\002deF\370N\006\355\204QQ\207[\025\"\377\352\025\024\004\013\216h\373\252\016\004\243`*\262\256\336uJ\201\276\221\220fO!\305\206\343\366\005\\\250#\375tGJ\250\260\350\035s`\024T#]T\201\376\301\"\332Pz\006\022\364@\310\177d@q\262(\224\336\361#}\305\203\202\240\217\304L\240\260\300\210\326(\361.A\001\225?\332\t\034\315\304\260\251\252N\343|\271\377r`\300\271L\330H\231\027[\0130\"\314\276_\357\nG8\275YJ\034\202\324}\264\343\245\002\266\377\202\023\326\344Y@\240\201\276\245\034\251\357\377\021\352;\246\334\256\231**6\331Xf\346\206,C\377\310v)\345<\216\002\266\301\222\242\243aV\n\265?\037\355 \275|\3679\035\312\335\355\2538\334\005\014S\366\315\257\260\n\207\254\005\224\326\227t\270?\270\246\267;\354\227-\233\212g6A\3770\301B\333]\020oi\031\030\026\260F8\377\242\r\014u|\242\221}&\240R\244\340\362\350v\270\341\224U03\022<\002\016\337\365R\3507\270\344\205\026\030\024\315\324~\350$VH\320\353\013aL\t\037\304\375\344z\326\272Os\256:\004`Z\271\276\311\\%?\031\027I\034\343-\203;\202.\301\231\024\377\330\032\201\207\215\234\021\316q\2213u\035\277\357\350\341R\300_r\250\243""\254\250\031\024\340\215\310\307\345\240R*\222\010\337\241\201\313\014\201<\033\033l\242\237\276\212\010\273\034v)\306@\246j\243\377\000\021(\364Q^\201\033\244\350,\267\376R\214F7\026\013\2412,G\376\214\323\005E\266\005\304S@N\354\177\202\273\215\266P\334hEx\256\312\031\236\252\347\330j/[2\\#\010\374\353\351E\315J/\337\354\235eFBY&\210\026\273]\377\207\262S}\303\014 \240\245H\241\374\361\355U\354\226\331B\233\243D\r\301\031u\034}\320\247\003\262r8]hD\332\240M\377\366\201\351\332\333\250\234\006\260\204\250\261\017\205\360\244\036\301.\356-\225\177\242\256\354\004t\023l\334V\000\237\240%\342\314\033\204\027E\321\021\237\010a|\376\235\203u\202\001\032\016/\365\223\271;)\305\221\226;&\260\324\360\004\216y\352bM\0167\017Q\206\360(.\355b\236K\264\3676\304\216\225\276\357e\300a\016\333R\341\320\220\027\002\251[\317\214\221\005\r\246\275\004\344\322\303\036\022\245\235@\276\257\341\005\363\206pC\366\305\004\260\201\317\2163I\0133\016i\360\313g\232^Ok.\212HfLqw\322\307G\257\326$x#\326z\300\365\372\371N^+\367\375S\3129\241\245^\237$G\037M|\374\216\311\321w5\3363>\036\212\234\367\314\231:\255t\356\370v\301j\325^\2332\031\347\370Q\244znBxC\203l<\0300\370a\303\212m\2142Tu\376\032\032\254s\325\356/\332\330\222<\020\007\210\001\344\222\014\002J\342\000\266 ,\200\253\t\007R@l\004\274P\"x\010\234 7\322\003\305\010<\020\2030\217\254\027\320\253\344)\344\213\336+\347A\363\200\037*/\230\027\330\243\313T\323E\377\020\036\220.\300\017-C\317E\330\021\330\001\327\0209 \007,SQS]CYSa\007\330U\346\210\364\200u\201y\312\232\312<\344\016\220\2175\023\232\211\373A?j\207\355\000\360\022<\022K\300H\356\000\360H:J\315{\375Jx\267{.mx\247\200u\326\270\305<\030\363\265$S\301\350Y\367\265|\016B-\365Y\221\362\324\316\347\021\3019\177)>\002\364\032\225\022\360\225\237\262\234\331\353\275\267\214-\274\047m\255\331x\236)I\036\007V\016\265\335b\347\317\300\357\301\322\366!\235<\016B4Sm\242^G\200<\343\243[\274xB{\047/\025\017E\360\234\320\025\036\006\322\365\267\017\036\006\367\304*5\267\3606\001\350\264\360\234%jW\300r9\003W\017O\tC\035^[\302G\000h/\320\277J\027\234\356\026\217\371\220Xo\216$\324\307\337\023\312m\277 \370\270V\013/\310\274\217\240s\013\272\265*>\203M\242i\341v\337\362.\243\337;\366\263\262}\261\270\323\263\017\240D8~\362\322\246\223&\311\024$:S\232j\231\024eo =k\314\363\321\256<\035\231\361s\324\333\t\263\\\374\316\350n~N\354\225\242\241\255\271.\313\307\277\273\315K\025\351w.\353\305\213V,T\266\353\323O\276\225?Ts4\372\266\326\325\223\232\224\375]\035R\365m\335\355\207E\315\017\311\242\326\215\0274V\245g\246\262\027R\021\322$YI\\\000\310\223\366+\347\000{\n\036`\047\230\t\260\001\244\017E]d\r\201uQ\324SL\r4y\312\351#\351\013\260/D\003Y]az(\373\010\373\013\321S\325_\\\017\\\017]]\205y\242\364\021\330G\232\2175\036j\006\302\233\010\354.\302\032\352k\241\254\2070\036b\363\020\375\312z\300\372\350iB\355A\244ZR\322\007zZ@\322\203J\016\375>\344}\177\304\030H\026DQ#\021\025\204E\t\002@Qf\334(\302\224A7vP\371\273\333^\321o\3545\311\010L\327\267f\306$#\217a\016\320\201\373Y\246\022\235\264ck\210e\303\264\227$$3fm\332C\273\261\232\\\335\331\262\022\365K5\305\256t2\245\300L5\006\315d\270\235&\331\260\354\177\006\315d\270\242\334\333\257[\337\257k\215\2235\303)\361Ji\273\233v\356j\227\250\333\006\255\255\257l[\007C\024s\340\222\206\335r\265lm]Z\267\341\221\373\016\315\255\352\211\322vk\231\346\200\362<\221\355\027\261{\017e\3354z}=V""\373y}\225=\031ZN\275\275[\263tk\302\350,t\372/;l\331\251F\211\020KZ\305\255\033\002z\326\215\201\300\005\024\253\013p\244\212KJ4\233\002\301\2505\255h\254\033\002\322\256\266-kZ\303\260\320\032\226\003f\223)\250\324\266l]\346\305\314k\\\235\353B\331\250\330i6\036\243`u\235g\206\337\002\207\300$%\333\331\241\335\232;F\355{uG\324\367uz\241\364\277\320z$\351\344\317\342\006\243\305x\257\025\340\037\n@\226\337N\345]0\367\324\241\266*\305\202\262\256X$U\312\244\262\305\213\004\353\026,P\366$\254\007\232AXA\000$\227\361\016\261\353:\316\260\274\301\017\302~(\2522\022,\212\013# \213\005 \244\"\201\t\025dP\000\026@\221HDd\022HFBH\241\000\202\301UE\"\261\005RE\202\305\026\022*\260PQUbH\002$\222\014\211 \204\212\257\3701\\\360p\020\034\027\361\343\247\004\005\360\024\200\223*D\204?%EG#^\267Hi\023EtA\321WD\321\007|A|\200T\361{\277l6<\204\327\366/\370\0167\245\037\007w\221\264}\333|\341\226V\020\225j\325\216\017\235\000\225\257\215\004i$\216\000d\310d\025\030\004b\001}\376c\314\340/\231\270\275\201\325\313\324)\232\207\\\000$d\004\0004\261XAQ\244\245(j\354\024\034\0000@b\352T\325\230=`\330\026\351\016\254EG(AQ\204\210+D\206l2\034\333\300M\004\000\007n\223J\013\263S}\3554\376\371\261M&e\331\311\036M:M<\231\273\264\377\n\212&h\003\257%5\2204\322\220#\010\306\022*\214\210\223\027\rE\210\003\254\344\334\250\004\211\010\242\211\213J\024\267\024\304\277(\2310c#\t\t#x*:\000\026&\205\313-z\366St\261v\221\205\332\224\322i\344\256\244\254!\002\n\214\320-\312d\001\210!\212\251\210\356F\353\315\014\224/.\317\005\n\305\204\222\2264\214\207\223\246\032\333c\256\264\244\220\2325\306\361\235m^\014d8\336\005,\201\317\033\342\333h4\232\2349\023}j\350i\240\331\376\221\242Dm\326\n\032\334\317\341\326\241\254\257%\034\200\027B\2309i\323\257\001\020\303\017\343\025\004\324!\236\262\3021\rp$(*0\272\3716\232\204R\201a\031o \240\273\342b\221Tt\n\215\254\264\224)\030\334mt\013\265v\210\216\3216\216\322\3670r\024\\\215\271\264\251@\266\021CX\232] \272](7]\240\214\247\3722P[\0247\014r\264\246@&@\344)""\213\257Z\206\264t\246\200\210\201\206\315*\234KMSU\002\205\332\351M\270\n\215jJ\0336*m\255\345\345\004 S~\200h\013}\371\240\250\320\250\314(\264\261\203\222\233S\005M\240;Wi\24042m\177V\221\032\22638&\226\0024\200\216\227J\346.bf\203\230\\\203\\\304\310Eq,\014\262\220\025\030*4\304\035\"\226\211P\200$\200\302\002\222\005\267*n8\177\252\347\nR\361Q\232\334A\304\326i]i\200^0 \355t\213\236B\243c\236fje\213\261\014\202\3646\006M\002\242&;\341\233P@\310TrMb+\226W\230\256<\247\360\034\205*\333R\031\n\216F@9f\032\214\265\030\212\216F\215\002\223\"\020\024RE\357v\013\2039\354:\351\227\t\206\026\211}\2577\310D\347B\275c\340\177\366C\360\314\213\346q\004\307\237_\327\365\3259e8@\216VS=\001\371\250\300\210X\010\276I\376;\303\004H\007[\225a\375\221\n\047\272\216\233r\025%\307\352H\314~\264\005\300\275(>\3536\tdwK:JR\030@>q\265\244k\372\376\333\n\272\201~\213\350\034X\311?\231\253I\245[I\346$?Y\3666\254t\312\016\274\3308\334\225\241\316\320\337\260P-U\007\302\302\365K\032\376\232\303_f\370\361B\203\033*\300\374b\021\201\344\250\266\270\207\201\222\242\271\375\370\201_Ia\330\\r\273b\005\026\035F8_\322\207U\246\377\223Q\267\363\177Ni\255w\341+\372\031\333\256*\352\230\202\3363\020\373\367\030\263\224.\036\322#\343)\377\321\270\343\330\036\177_\204\336:\007\334\362\233|\366\376\347\267\216\200\311\003\007\340\356\250G\021\2771\037,\345\275 `\202S\017\313-\327\370)\363\020;\031\351x\317\251\315;\341-\021\247\023\371\312\240\260\037>*\\Yn\320Y{\275\375\265\34428\325\202\330\346f\032T|m\206\256\205\312\035XB\210x`\230\367\271\236\320M\232\363\345\216*\221\364~\240I\035\235\232\\m\356\021\023 K\366\363\233N\262\022H\047\327\372\377?\320\026\210&\223,E1\202+p\027\201\202\007@\017\310~\274\354;7\341\022R\330ql\332\023Z\337}\255\303Z\343W\rl\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\333\266\375C\275\352\000\245\302\213\216\000f\014\263\t\246t\374q\004\204P\320\004\321\360\210\206\177\357d n\202\031\231\202a\367\340`""\340\032\024\277i\021\330\202\337D\265- \337\r\363\252o.\267\036\275\257\263b\241\366(\321\024\202>\225j\222u:h)\203\345yM\002\017\335\262*\371&\206\200\247\233\236\277c3\324\36344\0371\023\314R\377\276?\315\246\256\372\274\002C\014\253\014\222c\217\217dv\000\022\247M#\341\246\220$\361zNW\201\303\231\376N\221\r\247t\356\340pA\205U+\313\313_\016\212Il3@\352t\351\245I\n\2328\235w\211\374\034\t\027\020U8\021p\005\255yP\047\270uZ.h9\252\235\377\335\235Y\010<~O\277\267\334{\345D\343\305\3167a\314?\007\332\333\034\270>\014\013\001\200\025\320/`]\"H_\265b0 \300`H8\303\010aB/\231\201[\270\216\335\250i\r\177=5d\370\227\213\241$\213\204i\366\220^\010\250\344\247\373\210\233\361\315\353\200)B@\177\306t\215\372\200\252%>/\365\244\032/]M\302\330\217\311\321\350\361\207\236\327\256\331h\267\t\212\330\222\025\265F\310\221n\300#\r\242\023f+\202HV\203\020\007\340\013\2065\373\304\276\300}\3240\rdjc\277?\310\334>\372\344E\317\270\217iy\332\025\366\267m\025\355\244s\363!<\264XI\n\305\205\\\370\214\301\203\036W\036\211\335^/\370-\332I\356\347\047\267\356\037\265\354\364\336\317\3330*\251iQ;\317\321\321\367\264M\263x\020\023C\001tg\223\235\366\342r #k\205\300\262\\\002\341\373\236\\>\331z\365\342\351{\031_\321`\255<>\031\352x)\315\332\323g\216\372\260Q(\223\324f\022\362\2760\313\213\344_\265\201`ya\367\237*\t\233\254\373-UUUW\315\347|\276H\037cz\220\372\005\031\304#\025\247\266\321\267\234\007\314\"r\335\277\276\354\232v \026\006\004\216\027w=\200rI\350\001k\020T)$T\355\247,\004[@\260\200u$\312z\215m\255\202\033*\224\017hw\207i.\340X\210\016X/\322@\252\216(+WPkQ(R\346\205\203\243\325($;(d%RV\255%\234\333\002\336\324\347:\317\361{\344\222I$\222I$\376\307?\305\307Y\263h \3538\236\200\347{\251\337\367y\2008\034\016\"\033\336\356\002\264\212p\222I$\222I$\222\tO\300%\004\376\231\004\200o\351\340\000\274\025G\220\344N\275\373\377px@\017Q\346?\353\267\327:\365\211\255\326u\013\324\233M\241\245\220\016\316\220:\\0\300\376wNm\253j\346\256fn\375?\036\372\017\330\023X~\203\206\223H\032T\003c\250""\023Q\253#\266\t\374\371i\024\356\324o\004\356]\340\3546\001\261@]jj?\233\373\"\1774\035\204\030\277%\035jk1\341\267V\241Q\260QupMb:\314\200\322\021\213\232\346\211\270w\033\225?\241\rA\2515j\rZ\221\346\326k\177l\023\205\035\244\222\251\264\035\246\321I\3019\002\311\242\313\271\230\354n\201\212B\244\250\023\326\370\211\303\014\267\320D\276\275\003\221WG.\030\030.\004 |a\212\233\304\336;\353\2577 11\\_\333(\024\375\343\361`\344\344\245\224\346,_\203L\323\267R\231\344\031\320\313K\212g\371u6F\216S\340\032\302gJ.\326\003\037\333\374\217\325:\034\246\265\240\203\317C%\016\332O$\177\207\377\235pS\304\201\007\357\002o\237\340r&\206\201\234\326\207/C\373\347\000\377\260\006\214\203,!\335\200\013\022\303\272U\224\247\374\367\373\344\374\004\034\376\300C\327\207\217\267\337M\254(\367\305r\314$C\251ra\205\036\330\221-u\023\335\304K!\331EaP=\2241@\322\251\3735\010\016<\347\372?\251(-eDXT\257\n\246UU\322\351i&\207\216b&\203\362\334u\004\376\240\230\t\344\ta(>\204\376l\377A\016\356\335\210wQ\031)\373\214\235\375\275\250\252\252\252\252\266TSH$m\260\310O\352\226\347\264W\230M\000\330&b`%f\245N\023q\010\020\201\010\020\201\010\020\201\010\020\201\326\332\036?\372\323\366\241\017[\307\220\333jm!\343\025UUU|;\202\n8\256\2419\304\324\246[\261L\371h\264\262\201\312\002h\300M\204Zz\267\250B\3312\331-\262[d\266\311m\222\333%\266K~(\032\204\303\004\307:\030Z$\023\0014\205\366\245\367\320\266\342\370\000o!\305\337uUW\207g\025\244<\010z\307\251\204\030\034\357\016;\251X\225\331C\0259\204\314J \232\360\306,\205k\345\255T\004\251\204R\200DaQJ\205E)E\205E)TD\254\205J\310R@\030\300J\310P\200\225\220\260\023\374\003C\240on\363\320A\274^Y\313\375e\r<\264\016X\213p:\300\2710\373\335\356%\235I\007hvh\335\022B\232\010\335v\350\366L\301\020\300\022w\363\261\276$\220\232\303\377:\242Z>\r\332\223L\302\233\247-7\323-\323v\311\267\0044d\306\013\030\003\001\330\260\246\244\200R\376\266i\340\347[m\234l\306D\337\203\221\002Cm\365\275\272N\002\310\2527^bQ\212\010c\215_\216k_aL\020\304/.\275\020\276C\014r""\271\037\016bW1\000\330T\330 FJ\024\330)I\"\250\330\037vP)O\246|\336\222\014\017\214\376\251\017\243\352UUY$\222Ob\344\364\375Z4\3030\236\225\222\374\324kt\204\267,L/L9\224r\304\360\202g\t\016Y\236&\205g\354\t\024*\377&/\240u\372\032G\221\365\316\177R\370\342Yq\341\0000\230\300\3443\352p\351\017vtgH\210)\243\022\000\312\013P\210D\221\245u\006\222\020\224\352S\234a\351~a&\230\226\023\313\367\341\360\357M\004=\233\rqLa\231La\237\0251\206e1\206e1\206}\352c\014\332\230\303?\277La\237\202\230\303>zc\014\332\230\303=\372c\014\3734\306\031\3051\206|\224\316\353\rj\311uE\205\3251\206|t\306\031\2651\206e1\206wS\030f\364\306\031\2651\206~:f\326\032\356\262]Qax\246[\014\356\262]Qax\2460\315\351\2143\2551\206t\247V\031\337M\230e\242\302\376\nc\014\355\2460\316\332c\014\357\2460\317\303La\235\364\306\031\331La\231La\235\264\306\031\333La\235\364\306\031\337La\231La\234S\030ge1\206|\364\306\031\3051\206xS\030g}1\206oLa\235i\2143\2451\206e1\206u\2460\314\247\214\207\3152\023\030%\366\245\373\250Z`+\000\034\047\260M\002}\002P\032\305UUU_Z\233\220\2603\267\304ZC\324\336\00434\\s\013\216aq\314.9\205\3070\270\346\027\034\302\343\230\\\354!\261\017!\016\376\350w\376:c\313\r}\212K\252rB\330g4\306\031\252\031Y\262\251n\372\026\311$\222IYl\254\227\t\300W\024M\"~\356]\362\001\000\200@ \020\010\004\002\000\315N\216\032\324\345\326\316\275\301\316Pk\321C\024\r\225\036w\224\275\324\334;#\272\261Feb\214\312\314\314\270\314\313\214\314\246&e\374}O\265\351\353\002\004\247\271\351=!\363\374\347\317\363\315J\34129Z\341\252\002r\2751$\022F$\204I@\034\244\250\300!%\006\036\311%\037\360\324\350:\372{\273\304\260\346-\022\275S\304K\001/S\324%\312Q\016\323\317m\0014]T\356\272\205\242a\220\222\200\361\372\232UUUU\\!\332\007\312A\002SdQF\022\022\022\023\302\3014\211]\002`wC\010\231\375t\020\361\023\000E3\200\240A\"\200\205h$P\321\360\345\205u\022\022\021\024QE\024Q\326\265\231\231\231\231\231\231\231\231\231\231\231\231\231\231\231\231\331\274;9\242C\300\206\3446\360!\2647\357\246\332UUUU]\372\220`rn""\"1\021\021\021\021\021\021\021/Mb\366\355\260D\207\335\263\261\t\325UU\354\177#\213\267V\275\311\275\337\nV\206\224&\224x1\004\3048\242QiBiG\203\020LC\225\231U\230\345fUf9Y\225Y\217\203\223\331\316\357g\346\373\377\022\257O\240\236\rI\336\235\357]u54+#\235\230\314\t\251\217\222\370\312\274\223HI\006$\030R\232IC\t) rt\276\357\315\316(\324\023\234&x\236h\t\024\377\035)\253\251k\305?\265\324&~\250\226\022\302XMa5\204\314s5\023\225\251E\300\211\0107\000 \233\007\334 x\351~\310@@\021\363\033m$\26333336ffgnf|\271\231\266ffgS\306C\244\220\331\223A\017 C\202\027\002k5n\023^\3014\\%\371\211\004\303q/\004\260LD\331\237Y\261\016\350x\267\247\022\014\2449\3508\220\334\203\203\215\032\321\255\032\321\335\243\323\255\301\331\243o~\210t!v \310t\350P\245\t\024\344j\274\033Y\244SJ)\276,(\030\247\014\240\324 \300\010\035\247p\203 T\207\314\303\303\302\036.\312jx>\242\252\252\252\252\333\026,X\261b\305\2177\265\317\026x\036$\333\273\257%\357\242\353\203k5E\210\212\332\241l\250\362mf\250\261\021[T-\224n\014T\336\355ar\"\327\250[\252\022\362mf\250\261\021[T-\225\036M\254\325\026\"+j\205\262\243\311\265\232\242\304EmP\266Ty6\263TX\210\255\252\026\312>\236\345\007\314WB\341\026\261_\312\203.\\\233q\344\177\0214\241\215\000d\003(\206d\23133-\222|\262\310\212\264>[)\362\237HOw\345\037\276g\243=\262\031\231\332Iw`\000\000\000\000\007\217\257\022\265<\217 \2364\324MG\305$\272\206u\247\310}\376\217\302\272\013\2165\255kZ\375\263.5\255kW5I\\\310\020\047\037B\302y\362)\203C\007g-h<\343h\207zf\2718>o\334\345\023-\014\260\003\224\362\236Q\252iu\246\0478\007\326C\220 i\246\242FD\201\024\224\000\370\032\204 \302Q\365\025(z\216\261=\000\234\375\302D=\021u\304\200\234\301,%\003x\224%\n\324\020}\021 \227\211\200\237\226\302\2670/\202\273\024%\004R\004\201 2C\00303\00303\247\302&8\\^\351\027Mz\342\351U\272,\016\373\236f\r\234@zW\250$c\030IE\016\226\201\022I\031D\352\014\263\3321\364z\377J\252\252\252\252\372\264\222~\250B\374\344\020\373^\335>\331\364\354\236\350\252\252\252\252\220\344\222$6?(C\347""\260\351\322\235\t\004H\034\020\350\020\346C\010z+K\231^w\207=\264\306\031\350\2460\317\252\230\3035La\231La\231O\204\207S\247^\265\302\346W\013\231\\.ep\271\225\302\346W\013\231\\.ex}\362\377#\357\2614\347\300\270\360\241$a\014!\306f\021lH.\242\360\014\014\200\261b2\204=\001A\005\021R\207\240\257\243\312}\327\314\374\242u\205\004\350\373\217\276v\002=\342`}\000\227\251`\221\013\204\361\310S\021 \241PJ%\370\236Bh\361\0224\304H&\2214X%\001\242\030\020\260\334\207\330\333H\242\212(\242\213\344!\320\362m\336Ck\233\020\337\313+\026,X\261b\305\213\035\275C\247~\323w~|WW\227\246\313\216\251\320!\326]\270 \300\340\242\252I$\222I\272\177\037\030K\230\304\253\255\215\240\226.\242e\030\314J\272\320\314\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\2643\004\261u\037\"}_\313BS\206Y:\334\341e\365~\214\366\237\002Q\034|y\2223\031\205\314u\t\\\316\001\231 8\326vH\210\253\005\205\010zd\260EEV\201\351\222\237\257\350\024\0178\237!\265\332m6\177\373\216`\272]A\021\221\204\224\000\322\026\203!!%/\214\206\250\047G\315O3^\210\047$<\337HJR\350mi\246\031\361\323\350\342Ax!j\252\252\252\374\241\017\337\020\350\020\320C\346)\010\273\020aR)\024\212E\"\222A\223\267\235Q\342v\251\305\374\047o\004\023\231\007\213\021\240\007\026\016\330kB\350Q\023\251\360~\025UUUU\333!\267\273O\243\177B\252\252\252\252~Y\204\023*23\2067\254S\001n\020\022\0205\352\202\377QD\215\276\253\022J\253\263\216+\273UU]8\342\275\047wq\256\356\355\273{\0138\340\231\230\231\n\223\"fbd*L\211\231\211\220\2512/3\023!Rd^f&B\357yak\007\265\242\326\n\223\"fbd/\324\371d&]G\335\001\007\333\307\260\022\036\275\233/L4\320\265\013\224\266\251o-\n\304\256T/\322&\352\246\336J,-\247\0142\321V\027zc\014\357\244\271OS\263{m\266\333m\266\333m\266\333B\036\267^\356\334 \300\347\230t\353O(C\211\003\217\034\207F\326\363\2749\360\246\373o[\3312\345mmmmmmmmmmmmo\341\371\t=\023\341\204\375S\352\207\306\177?\336 \036\013\343\001!\006\210\036 \024\224O\021\207\213\373&\336\375\364\363p\343bq\272\232\335\312B\220HyIN\000\007\332\0102E\000R\014\nB\036p\206\301\n(\022$\022\001\242B\220H4\203\001!\003D\022\t\006\000b\252\252\252\252\244.\352\252\252\252\252\252\252\252\252\253\261\r\310j;\020\366\260\220\341UUUUR\035i\016\204\373\332\220\233\352\322\275\0364^HY\016\241\005 \210\220\203\316\247\035\223\267\256\027\272\025\302\2700\361\362]\302\262\261\202\020\246\226\010B\232X!\ni`\204)\245\202\020\246\226\010B\240h \035\\\334bT\257,\020\"\373\236\377\202\331\334X\340H\n\351\001`p\225\201,\263\332\230\370\276O\027\343a\346\375z|2I\353n\252\252\252\252\277\037\257\0001\222\310z\372\375@\206b\252\252\252\257\006\3446!\361\222\000\233\207\310A u!\326\220\351UUUU^\236\337\237\344!\324!\271\017\177\346!\334I8\220\341y\265UUW\300!\242\035\204>\367L!\330C\303Z\357\265UUUx\351\341\340\020\344\206g<\220\352C\223m\225UUW\177\017\017\325\314\314\334\314\314\314\314\314\314\314\314ffffffffp\203A\006B\005\010\007|\350\215d \330 \300Kp\023#\0011\263H\233\217\204HT\013D\277E\340%\020\300\023\273\273\204\356\313\211""\231q3.&e\304\314\270\231\227\0232\342g\237\250\201\002\350\014\027\270^\305\365\347\346\367\300\022`9N\216\024 \276\221\201\220\047!\361\026\047\212O\207\273\224\023\220h\047h\235\205\2379M{oO-\0249\242?;\213\2023\210\226K\350` \021\010\213\20272\010\300\"l(\233\221\303\353R\374by\315\3764\324\354kQ\204\273\000\000\000\000\000\0009d9\361o\016\232\247\210\207\244\207\177AN\236\013\230ff\031\231\206fa\231\273\270wf\014\314\301\231\2303qDAp\203!\005\301\347j7`\203\344\0379\047\235\320s\331C\024\r\205\014P5\024WA\002\n\005\316r\332\200\261\020\316\013\255\262\225\266R\266\312V\331J\333)[\335<\344\360\344\251\257,\222\250 \363\345N\237\357\304C\254\020\354\224S\260\030v\035\235b`\047.)\313\331B\304\342$U\372~o\017\212\0364j\217\277\272\200{\330\204\013\255\025\003\021Z\006\340\024nP\346\210d\001\220\342\010b\375}\047\323\3206\316\263\030\241\326\034\211\021Y\026\020\271\26757\332N\235]\245\035\344\rr\207$\206\363\232\216V\225`\212\215\243j\212\242\212AT\007p\303\211\rp\355v\304\333\236\036!G\021\206\224T]\270\263\030Y$&\266\303\236\r\260\337\216=Q\n\230\252\014\2208\n\210\030*9\207T\271\315{\013\257\010\347\021\222&\021\341R*z\036\250\310-\004\232\004\365\t\201E,a\002 \236\250\226\020o\025\265\302g\232~Z\203\252%\341\200$\022\204\242\032\317l\206\020\314UUU^\002\036\377l=\374\246\267z\204\030\036\246\241\277e;Xg\342\247Q\206[%\264\352\020\333\202\036\010\020\350h\204:\220\314\307\353\376\007\313\242\035u\325UU\354~\047\025\344\335\214\017%yy\267Yk\010\020\324WU\207\013-\022\002A?\350\331\027\001\240&\"MY\246\255T+\022\270\320\227\230\221\001\325\253V\234\230@\205\003l\342\26310\204\020\010\220\322\342fba\010 \021!\245\304\314\304\302\020@\"CK\211\231\211\204 \200D\206\227\0233\023\010A\000\211\r.&&h\320\204\020\010\220\322\342fba\010 \021!\245\304\324}\323\341\323\\\307\331\253\315u\226\273\273\374\201\361<\207\323\351Sb\027\236u#\373\354\r \226$\222d,BLbUlX\257\230E\352H\251e\307{!\365\334I!\334I\355\245\231\322\226\252\031\211\277\254L\032!\244MB]h$C\047\343\267\224""\207\240\202C3\270\205\252\252\252\253\337\327\260\207B\033Xx\275\372z\235\2448\305UWgN.\216S\241im-\245\264\266\226\322\332[K\2046a\276\364\306\031\341N\302\033\020\352C\274\207\033C\216i\333\301\006\006\344:\037\022\217\310A*\216\351Tb\243\025\030\250\305F*1Q\212\217\217w\310w\370\\\360\266\333\335X&\257\216\207F\241\"\036\2419,K\276\305\017~\024K6\320\254J\322\206\262\032\022\017\302Mj\033|\364\365\217)\017\273\273\245UWvU\306\025\344\243\241S\346\022 \225\3378\034\334\324\256\272R\334\356\267\220\004\205\266\313\213o/\003*\250\231\205\340gSwL\333b\3603~\327t\313\330\275\203*\250\231\205\340e\361]\3236\330\275\203*\250\231\205\340e\361k^\223\232\247.\217Y\353\237\203\361\326N\357\256]\3671\303\t\302\325ULb%\226{\317q\356\366\360C\265#\371#\353U\366*\373\350\257\302\001\003\341\010{\317\227`\356\366P\332za\370\274\337\001\017\200\371\210u\336|\004,\r}\236\260\355\371\251\357\355UU]8\342\361\251&\247\t\251\307\302\375\327\232\337\354H\242\205]\026y\370\212M\221I\324\212O\0472\363\r]]\222\352\354\370U\336\3030\212)\326\341\227\230j\352\354\230\212E\024\233\321I\337E\047*)\305+\227\014\302t\"\223\324\"\223\276\212M\310\244QI\301\024\212)\024Rv\021I\262)=*)<\244Rt\242\223dRztRxH\244\336\212N\262)\313\231y\206\256\256\311\210\244\362\221I\262)\024Rs\"\223r)6E\047J)\2676^a\253\253\262oE\036l\274\303WWd\336\212M\310\244\343E\047\022)\307\317\227\230j\352\354\236J)9QI\312\212NtRy(\244\347E\047\")\024Rr\242\223\225\024\234\350\244\347E\"\212M\350\244\344E\047]\024\233\321I\320\212NtRnE\047\032)8\221H\242\223\215\024\212):\310\244\362\221I\341\365\362\363\tuvN\204RoE8se\346\032\272\273\047J)9\321N\265xXf\023\264\212N\224Rs\242\223\251\024\234H\244\340\212u\366\313\3145uvN\302)6E\047R):\310\247n\273}>\360\271\355&\325\033\346\340p\330\212);h\244\354\"\223\231\024\230\212E\024\212):\021I\307\2519\016-\215\266\047:)=\332)\276\273\234{^\333\032\361QK\253\274U$\354\242\223\330\"\235\033\362\363\t\331E9\251\245\"\212N\204R(\246\273(\246\350\212j\352\354\227Wd\344E&\344RpE&\310""\247&\374\274\301\210\246\256\256\315oE\047R).\256\310\242\223\202):QN\212\337\206a:\221I\266\271\047b\266v\330\235\304RpE\047\");h\244\331\024\230\212NTRv\270\216-\215\266\047]\024\355t\345\346\035o\013/0\325\325\331\253\253\262s\"\221E\047m\024\355\315V\376}\257m\216\3754\247k\304\313\3145uvNtRr\"\223\202);H\246\3777\227\230M\350\246\256\256\311\340E\047i\024\235\304Rsy~f{\236\251\277\275[\363\201\323\321\227\230j\352\354\235(\244\336\212LE\047u\024\235tRu\321I\275\024\235\264S\273\261\332\330\333bpE\047\022);\210\244\344E8Wc\014\302b)8\221I\271\024\352\232\254\3032\226\t\326\047N\314\024\302\350\036W\320\344D\352\022\365/\022\001\244O\017E\010vtUUUUT\206\264\252\252\252\253\264\320&`\220Ip\235\302Q\016S\223!7\337\225\312\272D\202d$*&g^\276H\033v\320\304M\224\004\322&\"R\370\027\333C\021\001r\003\351D\"\000\252\344\007\363Q\220\200\271\001\372Q{X \342\371}\253u\302n\023\346\0000L\340g\262\205\212\026\232\264\343\247N\232\351\347\004\274\320$:\260\025\244V\2550\261\020\321P\202e\346e\246B\n\313\314\313L,D4H\0109\227\231\226\230X\210h\270O\311\374D\222\243\342\371\376\270ok\020G#\357\026\362\001\035a\326\272\304\265\035\233R5\220\271\005C\351\240\047\031\330\234$v\200\231\013\260I\227bn\3020DB=\245\304\216\361\017\005\220F.\236\014l\030\371T_z\030\334\004\204\020\325\014\343\321\023\032\022\345,%l\t\343\020\370\364\252\252\252\252\252\252\252\252\252\276\006\322C\354\301\037|!0\304QE\024QF\302}~\217\337\366\300\201;\300\027\275;\336\376\316\277\312r\013\356i\003\316\213\332\000A{U\211\333\017{\326\207\324C\305\356\241\356\3734\372>\237E\010{8\275\010Z\252\252\252\272\222\006\334\241\317\273O{\237?ffffffffffffffffffg\330H]\271C\237M5\003\251\016\343\267\245\321\r\271C\234\263\022^\342wd\324\326\333\367\220\010\004\002\001\000\200@/R:\202\005\337i\350:\266\016.\027\022\270 W\014\312\350\214\302\024>\000}\373\340~S\230\244<\005$}\366\300\357\025\361\000 \276 \020Z\274\240\007\024>\364\001\242\274\350\021\347LM\031\363\211A>BD\206/\254~\226Bf*\252\250\253a&y\374\322y\2448\247\025N\"q\024\342\247/\256)\352\016a{\022\244Ok\312\213\304\000\202\361\026\224x\247[\337\360@\3708\320\370\0019\316r\n\036\210\2648j\205A$\252OVU\000V\300\303\003\223p\363x\0050J\240\000\310\\\010\307\213\352\372\241\277{\276(\226?\305B\322\036\nr\207\2071\340x<\357\200\370\363\047\023\271z\023\231\037\013I\366\244\355!\305G\240\026#\320\214z\036\t\317\025\002p8o\344:\307y\273\302o\023hu\247\"\204\201\303\202\024\336\214\027TcYfT\222E@\023%P\006MPw6\320\370\315!\\+\260\002\375\014\0008\272\010\013\202\255Ya+Up\221ATT\201\0149\024\336E\207e\027e\332\354\367.\363LW\305\253\217\213\025\026\2560\036\273>p\323A#_\203]\262\367\246\370\347\255\255\336 \353s\3370:\352\nK\323\363\337\267\261u\366\033X\265\306\2345^\212\350\334X\306\237\211\354\324\345L\275\361\253\361Q\315_\266\326\244m\344\324\374\255\372\373\326c\216\351\311\2166k\325e\273o\312\373\252r\233\001%\026\004X\010E\002\310\270e\266\242\326\342\202\302.\270\235\251\243\357\373\317\213\317\371+z\032\342\342E\304\210\rk\234\237\257a\224:\204\210-\320A4\302@D\327\022\220\336\237\301\000\035\3629(\206\tdp5\022\223\354\220LP\327\251$\255\312\257 U\235v\326\227\342\363|\213\017%\027e\332\354\367.\363LW\331j\343\343\305E\253\214\007""\256\317\2344\320H\327\303\256\331{\323|s\326\326\357\020u\271\357\230\035u\005%\351\361\277\237u\327\306\372\305\2564\341\252\364WF\342\3064\374Of\247*e\357\215_\212\216j\375\266\265#o&\247\256\375|o{\364{^\357\276\317\034\316&\214<\305`\270\226\356\037\t\034Z\266\276X:i}|\264\276\236O\221a\354Qv]\256\317r\3574\305{\332\270\365\305E\253\214\007\256\317\2344\320H\327}v\313\336\233\343\236\266\267x\203\255\317|\300\353\250)/OW\364\356\272\365}b\327\032p\325z+\243qc\032~\047\263S\2252\367\306\257\305G5~\333Z\221\267\223S\327~\275^\367\350\366\275\337}\2369\234M\030y\263\200\301\023\200\200\204GuDb\210\201\205\240\320U\273\207\312G7\255\261\246\016\233/\257\226\227\323\311\362,=\212.\313\265\331\356]\346\230\257\225\253\217\\TZ\270\300z\354\371\303M\004\215yk\266^\364\337\034\365\265\273\304\035n{\346\007]AIzz\277\237u\327\253\353\026\270\323\206\253\321]\033\213\030\323\361=\232\234\251\227\2765~*9\253\366\332\324\215\274\232\236\273\365\352\367\277G\265\356\373\354\361\314\342h\303\366\312$\202\201\020\263\230\332%E\345\022\"Y\020\032\301\352-3\306bg^b\315lw\305o\277\014\0359_w\246\227\333\350\371\026\035\224]\227k\263\334\273\3151_e\253\217v*-\\`=v|\341\246\202F\274\365\333/zo\216z\332\335\342\016\267=\363\003\256\240\244\275=\317\354=\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\323\311\362,=\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\207\276\275_X\265\306\2345\236\212\350\334X\306\237\211\354\324\345L\275\361\253\361Q\315_\266\326\244m\344\324\365\337\257W\275\372=\257w\337g\216g\023F\036\322\201\001\370Jz\025(\030\"t\002\002\002!\217u\034 \004f\306\006\033\330\037t\216\372\255\266\341\203\247+\257f\227\333\354|\213\017U\027e\332\354\367.\363LW\331j\343\335\212\213W\030\017]\2378i\240\221\257f""\273e\357M\361\317[[\274A\326\347\276`u\324\024\227\247\271\374\317}{\237X\265\306\2345\236\212\350\334X\306\237\211\354\324\345L\275\361\253\361Q\315_\266\326\244m\344\324\367o\327\271\357~\217k\335\367\331\343\231\304\321\220 \036a\352\034Kw\017\204\216-[_,\0354\276\276Z_O\047\310\260\366(\273.\327g\271w\232b\275\355\\z\342\242\325\306\003\327g\316\032h$k\276\273e\357M\361\317[[\274A\326\347\276`u\324\024\227\247\253\372\036\372l\336\266\365:\200\366yp\305\270\261\215?\023\331\251\312\231|g7\342\243\232\277m\246\221\345\273S\327~\275_\034wNL\261\263^\253-\333~W\335U\023\241@\354\363\365\236\177\242\277Y_\325{H\022(\033\355\360\333g\237\246\357N\206\377\263\315\272\3379\370\261\177*\031\361s\206W|\376)\212U\0321-\225]\033Ii\241\014\354p\014\000\330\001\346\2339\262\021\0061*\233-\220\001(\006\022\354\251\357\331U\256CdbBWk\n<\257\363\377\014\212\270\331\303\032\261k\327\001\020q\321\270\223CE\3446\014B\313Y53\345\315\242\351\215\314\010p\237\204\240`@\034\221W\341,\223j\201K<>\303\364\274\233\025m\330h\207(A\004\210\236m\234bI&\300\201\221\025\212*\300\026\010]\024\003\323HFG\n\305\263\021\314\365\265\311\332\340\246\355\331\340;\343\007\n6\022v\0220\234\303\367Htw\025\352\365\211\027\022\310ec\243\277\271\021(\001\355\350\375\352[\002\352\005\372\001`\037:\020>p\371\377\220:\271\271\217\332\276\036\002\267ERB\034\234\r*|\374\001\332}\306&\377\253\224\241JR\373\n\202q1\353\216T\220\007X\017*\014\003\225\010\362\273\223y\370h\047\347\250{\310w\3058\303\357r\301\311\337\212!}\366D\034\264A\340\304q3\367([H\r\310y\242a\271\227A2l\177\344\334I\266Zf^d\247\322h\003\252:\023\3764\370\256\037\257\014E\323\"\330&\210\344\353\327T\331|\342\232k\245)\361R\022\033Q\377\330\027%\320\263\315\006\350\034\255\346\327\271\277\213\244\364\300\201\031\021\206z\235\326\000\020\355\212\304\031\001\010\0335\341\306Y\022\021\022\"[\r\224)/]\027\347\250j_\224\240\211EzD}\000\260g\306\000\237\031\346\365\374\336\275)2\322\263\274\2632\010\232\226\270\302\204\222\305\022\3425d\020j\303)D\037K_J\253\034p\047\266b\007[\357\346{\324A\275\317\313\324\2608X\320n\214\252\267c\313\232\340`\030>lt\326\205\237A\261l*\207TA\325\205\341\303\333\327ao\036k\323\222B\030\004\371\223\267\305\3678f\036\234\277\002\266\220\030\222P{)!\350\010)U\242\367\020Y\352l\371M\375\347d\233z\376\261\335\035>\331\352\305h\325\272\326TdUU\020Ux\351h\023F\246xd\303!\300\316\021\214\324\357\333\241\333\200\232\355\375\3117\207\255\315\327\024Y\225\246\354\250M\322\215\336\316\316\304\216\303\263\254x ]\023R\365YV\370\275!\202>\336\245\003\017#:\352%,g8qE\222*\010\017J@D~ea\363\036\220?\034;Owq=}o\205\226S9%\000\366\370\312S\310\307\271\002\362\357\316\"\017\245\232\257j\235=*.C40\007D\r\032\260\026\216\364\315\311\047\357M\336\206\025(49-1\307\010E9\260\360\254\"Xp\202Z\001\033R\341\003\303\2416?t\263\345\364\005\326\323\306\363X""\036\226\047\020\003\301\020\210\370\n\317\202y\340\035\020\221\367x.A\202\202\205\207`\033\373>\302\344\266\201\321e\367\366\235!X\035\240\230\261\255\263\n\211hh\357\250\035\217\262\357n\263\001z\226\211X\322\325V\234\014\224\367Ow\335\047\271\354\034\220\366\375t\361\205\234\246[u`s\207:V\000$aV\022- L\205hI\255_\340\030\232\307\307G\001\304~\2103\334\326\306a=\232\037\221!\250m|\231\365\341\322\372zz\270\363]q~M\341\357\362\354\000\266+\036\310\006\307c\211j\226\021\022J\014\237\0039\345\224\226T\002\rI\034E\304q$P\264\\,\256\252d\010\314P)\320\232%\262\235\233\004\356\004\356\243\234N\305N\345\030\201\334!\036\340\356\313`\0266\342\320\216Q\047\2478\272\370A^*\2170\246\204\320UQ\262\221/?\270>\306\333\030\205=\376\376\026\300\263m\355\025\316\305\020-h\274~\211\002>\277\314\005\233\346@\017e\307c\237k\250QO\302H\250\014P\370\360\267d\ra\3665n\366\023Z\2454<\273\277\322K\320\330+\217\2657>\357P\211A\2608\265\333\354\265\003;|-\346CP\025D\221P\266\035`|~K\300\250\"\202}Z\354\251\355\"m\n>\037\224( \375\242\036\201RJK\250\001\301B\236,\346\034lk\234\272 \002\210\002\t(\200I7\226\363\247\321qt\335\325Rr\027\031\207\002$\203\263F\217\335\247\022\023;\010\364\364v\230\204\206\334\3032\363\234\275\220;3\032\355y\256\351\013\027\031\243\002\227\343\343\271\355/\217u\213\200\321\365\216p:\342\232\351\256 \032\340k\253\256\257\234k\032\276Ya9\236\205[X\361\315@\231\032\324\234\225\rdH\246\2600\351%\004\314\274\010\n\354\200\250$uTE1X(\231\233|\333Lz\205e\033v\235\351\313\3628\341Cz\247(\014G\224\002<\255\246\"#\"\252x\321\341Jr\261\357<|\275t\261:\024<\214\014*6Dp \336\337A<\025\200V\013\000\270Qd\3418A\\\353\243z\356\362\256j\272D,\003\022\210Du\027\341W\032cR\220\371~\336V3\260G\270F/r\020\356|\237Q\t\003\316\324\030Ad\010,X\000\002\311\001b\305\373\236\000}\275\241\357CF\370x\331\365y|{\251\261a\233\361\201\214Cs\234\304S\321\343*f\340Ii\341,\234M\031\333\243\321\242\345\320h\312\256\224e\3755\003\032\310i\362\327v\264\315\320\007\3366\025EJDE\n\215v\245(\330\024\262""\\\335@rVD0q\rZ\353 \203\235\241\251\352s\260\310\230\006s\344]\371Z\315v\331`o\227\367\322\303]\234+J\245\002\225\332\274\220\013V\301\024y\006px\346\021\034\371\034\360&f\314\006e\2331\230Faf\\\027yw\333\031\276@\226\355\262\261/p\214\276\313\373(\243\315\272\254>\222\256\222\254CHH\351:\"\250:^\2322C\261\312j\355-;z\364h\3738a\361\371\352h\260\277\256\227\323\027\t1\242\322\007\301+\341a\240\205\205\201J\013\262\"j7\331\226\253h\367\317\002\374\263\310\032mR?%\000\315\265\277\327kP \265\222\350\026\251tK\260\354\341D\240\3716\255\334\010\337\276\205\302\270o^\tS2\261l\361\331h\210\r\346\252G\030\267e4\013\226\033\354A~<\302>\n1O\000g\201\317\177WI%;\353\tM\265\266\225\032X\005k\206{z\272`M\214\201\002SM\204$1\204,4\204\240\2101{+K,h_9\003\315\340g\256\215\360\360\200\024\375j\227xjW[\355\240+H~\334\242\236\344\020b\2108_eR\247\326n\246\312X\020\303+\\\211\010\021\035\312\322S\260\325|,\340\004\220\331\222 \306p\005\204\332%\271\311\241}I\205\r\326!\3470,\277\246\322\203\225c\355\307\n\347\002&\353\016\023\0179\344\006\232\232\314h\222\004#$\005\232!\250w\217\231\234\274\020\361%\343\224M\210Z\205iBPi\t\n\224\241\240\372>\006\272\371y\274\366\374\033\262\3131\246k\262r\204G\"G\047Y\220\311\310c\316\307\010\364\212nJ\260\345:\027-\310\021\327\336\342\360\205\220\004\3102\010e\221W\331|q\3002s1\307V\273\234\300\317\201\341r}\310\212+\024\032\024>\251\212s\020N!\357\224@\2547\237})v`~\301\257\\\314\247\257N\341\242}!\247Sy{\355\n\232\346\310k\022\370)dB\203\0051\263W\r\302 \333\2453\372\202\307\013]\261\333\000\306C*W\356_\242;\3615\032\216oJ\0108q\354\354\320\033\262\264n\321O\203\023jzA\343\213e\047\256\025\255\t\t\nu7\353\331\201\233v\212\234\316\270\306\3205\205.\327\366y\306\214\"y\240S\352\033\341#\207\037\232+\362\020\233\236v\246\237\360\033z\037\343{{~U\005\213\317\336\226\250\307\226\004\203ho\212\203c\352\266u\036\322\377\001\256\014\220Nj\355\307\013\360\014{\272\037\240\021+\361HP\016\004^B\272\010\325&\002\236\345=\300\013\356S\347\370\266\353\351:\261""\3573\266\340\250\032\233\303\343\266\225k\017`/\264V!\355\022>\327\344\034Z\214\215\271m\333\r\327gie\325q\256\216\200\2118\364\240@\246\231\0220\246YOb\004\031\020A\212 \366_\215J\207-\331\r\314\314\357\366Q\364\231\350\277\340\366\331\216\245\247\016\307\323&i\364\231P\240\223\367fPq\004\224K\047\004\216u\027\310\254\305f\232\035\036\344.\277\216\255\205Sg\245\035oT4\023\361\347\314\035\032\253p\022\032\014\262\313\250 \236\t\352\354d\362\375\206\010\"\261X(\260\004V,X1\222\021\204\223A\274 \2267\204\220\306m\3266\213\360\235\017\230\337\343P\261\232D\231\027\021\272\201@\301S\301\006\003\340,\360\364\346\246\336\205\371\336}\350:\246\257E\347\372gE-\005\272\200/A\032t\000F\360B6!(\205\310\222\2168\300\022\212Dt\023z\n\274\317\362\204*,\010\215\021\357\206V^\311\330u\355\360\324\t5m\217Q\361\200~\036\300\235t,\210\227f\310\004\006gD\264\211\3210n\3009\303\234r\356U\226\314L+\306<+\nk\375\264\03110\356\036\016\233\222O\242ih\242\262*/\230\372!x\003J\333\037G\237z\010\241\022\032)L\341\231@\234\350\0001\344\021\215\034Ft\262\361\347H\276d7\235\204\020\305!\334\353\352T\3538x\367\0227CaB9\004\014\203\221!\216B\264\215\363\375\236l\244?s\003:~\047\\\201\256\304L\225\201\360c!\251.ls\031\220\347\272\031c9d\212\262^\032\357jz\006\240\225\243H\024\270\220\367\217\230\035^+\303d\216?\224\365eM\333\271r)R^\374\303a\263\006\332\342g\035L\215\325\326\306\271\243\355h@\336\346\024Z|\257Yi\307!\355\177\223\252\000\237U\202\255\223Z\260\336g\354\004\370v\026F\004|\354\250\252O\271U\314;\002aJ(\337\244\347\255zm\270On\366\373\226\316o""\325\225\332{rH\257\263z\215\234\236\374^\234\323\0250\252\245H\214\225F4+\304\327af\204\242\335\244\022\016\024-\256\264\262,.\315 %7\303Mb\316<\262*R\304\324X\3200\303\000U\010\001o\017=\276\320\373\334\207)\330\336\327\372\310\216)\2210]s\267\240\216\031\344\006\374\371\224j\310\201u\0139\304eB\010\244\233/%\370!\244\014c(%L#$z}a\013\030\204\311\030\301c\257ox\276\345Q\212\322\335r\270\35162\025\014\021S\306\047?\237\246\320u\254\272\267\251\316\027\246\363\256M\330o\360J\253\r\262\234\020\3709\344\327a\302\nv\355\304\003ho\333\230\241}\315\024\304Ib\221bV\372\225\032Kn^\305\r\227\217\321\034B,\247\342o\215U=\247d\375\025\030M\006n\212\001\322\232|\277\004\243=\023.\244L\"`\200\215\205v\352\323\215K\214Rh\nb6E\240\334\312\001\250\331{\233\243A5\302\302\307\302Dn\323Kiv\016\000xyY\232^\2743\r\244\333m\336o\177\243\237\r\306\360\321\014\240\025\2547\231\302E\006\027\261h2_\265.\330\326\335\364\343\240\216XV\007\177\220\234\376\2367\353\315\34542V\357\230 \260:!B\352P!\316\n\014\202 \300\365\345\256\313\255\321B\032ud\336\"\232\021\243A\001QI\016\260B\224F\240ELO\262\351\001\022;\026\263\246\0062f\221\374\216\217#\r\034\232\273\312\260yxf\316\007\326\324GP\326\326WX5\224\366\n\\]w0{7\367\235\006\255\367<\037YZ]+\017\217\367<\201}\2020\027\032\023\034e\316K\254J\036\231\342\334\020\220\234Y\200\311\021n3\327\347E\224RJT\362\226X\233O\233\266|Ga\254\341,\236\261\363\376\"0\021b+\001\222BA\200\354\017\016B\026\300\317\310(Z\234\347N\373\254\365{t\341\252\313}r\227\307;\235\2324z\221\353\213\364\221\t\004\014b\301\251\021i$\2501\t\023Q\002\250D\211\023\324\016O\250\362|OP\017\253\340=:\247\307\373\031\224\341\310\351/\243G\244W\322\003\020\364\251\017I\307\210\371\351\000\366\303G\023\3176\254\330~!iv\314|\262\274\321\005\274\270\226\027\371\353I\322/I_\216\306t%] \177h{p\026n\270*R\016ui\311\321\374.\262$\255\244\206C\326,:\336\201\345\231\207\330\312\316\216\333\220\240N\242\214\242I\343\024\253\032\342G\335`V\000\022\260UI!XV\025\213@\212\363\371\215\3608\014\273""\324rQjus\200\035*\221\016\225 t\207A\343\337\362VT\203\017\022J\246\346JT\222\255>\224\224\351G\244\351TN\204\005\365\200\257\255C\264VK+\030\2146\247\272\311lr\254\332\001\016\244\207X#z$ *\210\017d\200\223\331\221=\231\331;y\363\027/\270\"\277Q\255k\350\317\2274\332<\031\237\243\317TGk\260lau\365\337>\225\327\313\232\371?)\214\020\016`\034\020\270\227i?\251\210\324\316/z\275\375\352\235\375\352w\207z\247x\367\251\336#$\340\277V\275\027\300<\035p\212w{r\312y\003\234\256\000\213\302C%x\006/+\340\\\252\226:\241\231\025D\220\270\002\236\356+\314\022\005\027N/\220P1;\202|\223z)\312\253\000\345C\221:\372\3057\007Y\310\275Y\232\372\277$\335\352vZ\357\241\326a\306\322:8\031e\310\000\357\024\213\275\t\347\340\007\266w\236`\022)\212\230\013\205\025\002~\355u90Q\344\262\047\274T-F\320\177\010IR\236\025\250\240\0254!\200\246!\251\322\002\355\022z\334\230\025\234\177\343\267\354\332\036\362\2059\321\301f\202\253\255\004\332\241\020\332\016\3006\ns\257\257C\312j!\257\217[]\256\356O\346\336@\300\224\207^\320Sr\004Cp0\342n\335\340\047?\230\376\033\225\202\225\252\314\237@*\034\025%&fe@\344\313\247\352\376\377\027\262\202\007 x\301\334\320\270\251\263:\240i\"\213\025\333|6\332\324\331\201w]\177GscI\000sm]\223\207\2166\333wc8\220<\357\212\335\222\323\177\333\351\037n\201\221{md\300}~\353\317\177\252\337\266YC4\3312C/\336\316\344\226\213\337su\256\252*_qG\344\312\277\020\373 \n\305\360\237\362\"\370\225S\316\373\250\021\010\251\001\"\250E\312\274\262+\342\010\020\210\244\"\304T?A>\362\"\206\326\317\352\000_\353z\301Q\323#\020\306)$#\0350\207\260\350<\243\0263\356\376\355\303\331R(\211\224*\2460\304)\207\261\353\376y\"6\374}\266\223\303wT\004\265\360\272bE\005\222\271a\357\023\364K?\004P\371a\342\323\265\261\025\037V\203\321\356\314f\241iTQ-kW\316*6\240\223T\201\336 W8\244\302^@\005\217K*\265\321\302\0379\376\234\252k\304I\t\351\374\241Y\272\030\233\346\264\350\326`c6\031\213\215\024\377I\357\317\n\013>\365\022@Y\025OZ}j\037-Z@\302\202\311\rx_-\025\047""\340\374pE\177\241\257\315\230!\320Q>\330/:\204/\025\030\375\344\037\362\302\353\030O\246\224\034\320\032\265\"\177#\237`\023\302\250\364\355\317\235\n(\256\207\214A\025\220\205\361\017^Z\371R*\215\364\372\352\211\235pX\312\277\227?\326\370\177\350\367\324\302\257\000\030\n\214\227\323\t\341\302\3537Q\364\227\321\321T\270\243\347\375\336(n\333\331\366p\243\331\335\014\236\233\323S1c\034\340\251\277\236*?V\201\232\214\004\002\304\004\221\315\000r\211\375\037c\177\245\324\277\355\366\347\310!\002\0106\275\353\007\210\352\224D\302\203-\232&~V\371\261\304\024\0234\2737\203g\352\354uz\270]\264\224a\326*\213\266\3606\257\265\342\243\201je;P\004-p\250\334*9\256\314g\325\323\333\374,QJ\243$\360\302\210\265>\016\346\365\330u\275\256\352\047W\303\265\374\364I\342\r\346\010\227\313\362\257\263w:\306\177r\220\003\0306\337\374\037\377Cs\361\335\3347o3\n\216\355Y\307\261\301Y\n\215\356\n\031\241R\034\030\212\215\263\247\343\034\014\000\026\215\315\255\355\363\361\000[\024$\272\340\243\340\342\023\376s\\\344]F\020Tj\356\267\375\377\300\212n\357o\366.a\205}\202\223\013\3050\302\353\260\377{<_\314\245<{\350E\216\376\316\271\266m}\274&\036+p(p\251\014\3048\2241.\341\311\314g\360)\230\0203\340\247\020\231\316x%\261h(\200\2328Y\310RE\025\207\367\335\340\255\370J\342\336\036/\272\ro[*r\226\253\205F\376\025\275\370E8\252\361Q\310\254@\024\233\233\375\203\203\333A|\020\t$!\t$\211\"\317\0002\376\305>T\354\203\361\252%Zq)\014ad\227q\320\205\250N\367K{\202\200\372\341b\220\341\377\300\250\3379\342X\371\001\003\213\343\355e*\354\255\237\234\207\201R\331\353\202&?v~\211\202*A{\347\214\366xJ\357\361\323`\372\224\351\n{\202\030\337\210\250\366{~\347uN\335\304\007\334\356\332\254\200\347\002a\200\250\324*\020\000\265J\002i\300K\013)2\241z\031\370\047tTgj$\362{\200\226x\354tT\304{]\336\3464\366\314\301\017\002\022\374,\215\\\027\336\227\t\230R\214T\355\367\377\266\205\273T\212\366\240\022I\010HB@\221g\351\255\023\223\356\255\237\244\255\367\247\347\274\376\3408\002W+\212T\\\261R\n\216Bq\361h\022""\t\375\247r\005\307\376\301\356\027\335X\007\357\265\247q\225\335\367\255\337\271\000b\302\253\214\340\354\234:+!n\331\305g\263\211\375\010N?\277h\202\335\375\264\375\0243\237\240H\016&`\322\374?\315\373\216\220\374\337\233\363\034ws\324\373n\374\267\346\302\261\252\356\006t\276\305\242\021\013\3532\047\027k\266\377\223[\366;\rv\276Lr$\3556W\367\304[\273\202\231\005\213)\032\317T\340\202\233bp[p\022\343\215;\000\235\004\354\366x\363\260\001L\261U\031~G\014\343\314\206RZS\003\0200a\211\235\272+\001\333\336Aw\354\217\010\250\334)`\261[\270\007@0\242D\265\346\371\277\216U\200\047\347R\345\\R\027f>(\007 Tv\204V\235\356\272\225\047\322\024\"\376\rU\223t\341\336\271\001\010\027\216\376BQD>\0230;g\224\250\332\322\033[k\364X*nP\242\020T`\202}\377UpckK\332\302\222\047\001l\227\303J_\213\337\024\354w\373Z(qw\324\255\360`D\027T\237\237$\250\n\236\033\313c+\210\343\261\337\010\260N\"WiL\n\332\320S\207w\303\271a%\327\211b)\352\024\047\035\336\000\022AV\376\311C\231C*3\003x]\003\337\341:\373\240\321\303\267E\177\004C|\202\233\3140O|\206[\341w\277\230\316\316\210g`\036\017\227xN\007\277\302\177\250~\310^\007\014x^\316@\343g\277\356go\035\2057O\203\204\341.\016\030\234<\\\263\262\047\360n\356\347r\237\365G\231\333\355\227\t\333;E)\304b\003\306&\neq\270q&\341\0047\210\356\232e\2018x0\024\205\346\330|\047\305\270YOCx\244\3347\304\277uH\022\307]\333\177L\370I\016\267\315,&\361\002\363xCv\365\215\224\353\035\177o\332\243k\253\326\331\353\224\336\016\331\034\215\265//\006X\031\027\254\354\235N\317P\352\351K\324\331\300\202Y\016\267^\345\250\030\317\321\313\343C\317w\341\035\245\001\372\336\256\013\313\005\r\307\226z\276\025&\201\311{\317\310\207\346\177(\250AdP\371\374\250\214g\014|~f\312\034\005\335\005:\220_\241\020)2\006d\221\371XAG\334\010\323K\235\013\2679\350\243\372\201\2124@\022\370\247\177\002\242e\021\376!O\310\301\016x\200\350\222\t\314\t\3764\373\301\314~uO\240?\030\307\031\367\217\344(~\222\206\"\344\336\177\346\370\376\203\362\327A\340h\n\207L\256o\017\303\342\277_\277\336|\265g\364\025HP\275\351(\240H\200rL\347\037\373\350_\214\371}\346\177\306\240G\275\"\215KFD\237\201\017\320v\377\035O\321b\321J$>\020\033R""\220#\371\316y\355{\236\250\226\017\235\010D\260B\360K\200\250|s\351\272\356\351\356}\032\255\nY(v\337\220h\272\202\325}\334\237\006\254:m\224\351\005\205\267\274\r\0275Q+\346\267\037\311\345)\353\331iV\217\330\266\226\215\036\355\367q\037\007VP0C\346?2\326V\026SS\360\374(P\376!\202T\203X\047\352\322\257\302\244$\027\224@u4\373\211\36120I\013X\244*/\245\311\321U\250P\201!B?\247\t\005\002vR\360D\375@!\372\204_\350U\r\305P\375\242!\364\240\007\200\005\354\000<\241\023\342Q<\360@\363\210\037\250@\342(\362\240;\301M\310\047\220!\377\224\023\351\004>\200S\365 \037\225\023\364\203\355\027\374\342\007\245\037\025|\027\365\047\236\207\351\003\354\003{hTw\367\371\017f\320\265\027 J\200\260\207\240\207\346\007FC`3he\205\013f\2675\255\263[\361w?>\322\004J\322\214\220\202\265WcP\364\231\230*\010\021Gi\022\352h\355G\245\"\216\322\324R\3554j$\315\"\2234\231\231\r,\3132\356\345\n\220\025\212\322jq\306\374\0046\267}o\306\215\270\256\341FH\032\006\201\014\356\360\3703\205@\013&\330\347\014\305\275n\262\303j+MeK\254\312\273\252\332\240\231K\303r\250\337\203W4[q\210\343P`\262=\207I\323\251\031\004\303\2140\2060\020@\211\247\245\317\312d\222\023\267\004DA$\001\004}\350P\223\rF{\021\006HD@\237\212\227z\212*\255j\327Z\222kMmp\267-\375zm\234+q\266\343~\305`k\301E\3577\356\302\252k!\250R\n}]\375\362Y[\337\357\355\005G\325\371~O\223\344\232\317\276\276\377\177\277\036\374\347>\375kK\317\007\206r\274\251\n\252E!Z\221\024\363\353\235\261\214YTtT\3471\025\350E\022(W5\251\325\036\222\340\226\357\250P\210\201=\344yz\003\310\372IvG>\201\325\367\336\355\355\022B\077\077\263\355\016\375s\340\351\243\255\353i\301\274\333Y\213\234934o\025L\270\270}\377\367v\033\275\017\310\323\252\257W.\335r\353\363\375\257\275\352\367n\035/\027\276\315\206Z(\232L\321\2512\354\322eB\001\006\030\261\004\245\026b\222\361\016\262c\300RHM\376\347&\203\003@n\305\204\2318L6\270\254\022\321\010\020\022I\033\205G\021\"\013\200\247\255\2065\024]\321@\240n\246Od\315\316\336\254\177\017\352\334\334\337m\327\377D\013y\274\303""\013-r\235\227\233\206\010%\202qy\234I\377\007\277\350~E<\217,\t\032\213D(\252*\004\252\032\205\n\304b*\210\242\253\026E\210\250\202\242\014\231\213*\036``P}w\3718W\233K\321\362\350\3070\324\006\364<\2652y\207`q8\340\340\342p<\034\t\302\022\370YR\326\213\276\026\034\270\311\214\304\322\246\026\225U\227{\017\245\335@\022M\370 \014\242AcR\255j\303RaL3\262\206\2320%\025\341\246d\2112\003\002\252\n\2640\230vY2\322\341L\275!\212\375\326]\335\233\317\3604\304\0254\354\251\255f#\235\027\014\257S)T\333\261\264\367\276>\230\360\364?Y:\302I\201e\270\226\317\326\025\033f\277\257\177\243=m\300\013v\214m\303+\231\021\020\034\206\201AY\240\314\211\022*\201\032L\260@$8jT\210\002\"\265\333\216/\307\320\256\326s\264\320]\370\337gm\311!5\271\351$\204\314P\322l\311\322$\207\t5\252\013S\204\256\232\205\031Qc\315\2138M\230TR\014\334.\2367\336\232\326\336 \367\003\251\357\344\230(\031\206C\001\242S,R\314*\312%IJZ\255im\021\032\226\310\365\337\243\330\345\316t\336\235\233m{?\203\316\270\047&\325\377\021\010\020\351\276a\262\\\350tN\031,d\207,6\325\005\254\3416LM\221\023\021C\035\325&\314\003\304I\t\306t\343{c~E\370P\250\340*;\366\266\016\025\200\250\314\331Z\325\225\026\205\240\001\246\037\340Bv\244\235\022\032\337{\243\235kX0\315lr\206%\270\260J\212UKV\240\325\n\251V\251P\253Z\225*Z{Oq`\241\366\376]\027\206\372\032.\312\270\327poe\344R\201\002\233\353P\2126\322\326\323\022\211\225\262\213Z1JR\2425\244$#\"RRa\374z\357\3217\n\216u\231\002\007\255W\004r\035\r\005K\"Y,Y\000\260\245\220\261`\002\312\331\245B\200(l\330V\312Y)\000\245h,X@\260\006L0\t\222\006C&\022\006\0040,\200P\205\002\202\320\005- \224\r\r\213\000\226V\305\213\010\026@\262X\262\201al\322!H\322Z\310\205\224\261B4\005\005\254\013dlR\255+Ab\302\226F\315\254\213al\224+B\320Z\3106\000\260P\001J\323H\264-4\013H\323J4\2154\251KM\254\213e-@4\264Z\300\266\002\301@4\0054\241J\321H\264\255P\215\013E\000\3224P\201H\321@\005#M\nR5J\224\201M(R\224R\245#O\247d\033-\212U\244)\241\032R\275b\3006B\315\002\322\024\322\245\003Z\te\033-\216hY""\002\310X\241\032SYi\022\201\261\323B\310\226B\307LK\002Y\033\032\350\331B\310X=\201\013\000Xlt\320,)e\261\322\026\312\266\003HF\205)n\351\240\026\000\260\026\350\nYB\310t\324i\002\210Xo\036;g3^\035\337\332\311o\337\370\177\307\335\370}\364\341j\276\357\267\002c~\001\207\367\377\010r\241~\340\201\211\334\014J\000\303hm\322\350\35607\221s(\"NII\326\000\014\315aQr\005\354\004\341$`\0143\005\213\244\004\375\203\021\225\000\211\270\030f\\XH3\004<\005E\213~\313\330\202(\227\257\331\213\300\264\335\200\354\242\326\017\373M\201b\014\222\250,\252;E\221\212\024<\307;\234.\366\305g\367\277s\367\312\005\375\320\024#\373\220\000\375\342\227\"\237\354\t\207\360S\014/\377b\312\014\310\270\014\257\262\026\322\240n\004\tvk @2\351\350\3422\027\241\310\222\022\306Cp\006\"\361\274\266\005z\330\252f o\ra\010Ns5\234]\364\034\302r\034\344\332\020\047\034\322\020\332I\302\365\247[?s[\272AY\2668\374\251\213E\350\234\213\261\277\013\242\275\001\241\371\220_tL\024\nA\2477&\331\037\250\200>\347\337}\260\377\337\321D\037^\335\310\"\270\241\315\257\376\001\254\023\226%\334h\316\216$\371N@o\245\2663\"k\267\215[\363\034\234\367;\350]\021\014pD\327\001\302\217\361\212\002Jo\306\254\202/\322\205\270\317o\362g\010\006\223q\303\243[b\211\2560Ut\307\317\365p\020V\271\035\206\315\241b%\0211\337`W\244\334(R\270\027 `k\003\225\347H?\312 \0205\266\303\374\327\024\001M\r`\363\312d\001S4\312\200\240\344d\377\237\203\204\031-\306\203\"0\312\236l\370\002\202\206\225B\310\240\363\203\343\332\177\320\006.\234(\337t\351;6\221E&\305\315\312\241\032\377H\241\231\n\006Gy~\225\023\260\240\033AU\225V\376\332J\003\215\221\202j\217p\351\201\302~\262S\225#*\024/\372\245,\227Q\201\3201\332\340(\240\215\205\276\316\300\177\254\\gu\032^\206\353 n)\003P!\177\330$Xb\221\206\023\227\264\215\265;\032\032fa\371\327\223\301\016\3459\337\211\340q\256\334u\264a\252\037\266(\352\262\222\302\346\222x\034l\362\251\216\377\357E22\nl2.\026\245;l\332\003\014\na\227\313\376\001H\357\214\323+*(\331\013\303\361\273\246\312\022\256?\342\204\370\334\360F\025\004\210\026\332Q\317\014\260|\317""\374\207\240u\362N:=\333\200\311\204\270\344r\267q\300S\006\330!\377\346\006JyN\303\262+n\031(P\334S\r\331\215\325>\037\364@\331\343\036\305;\017 W\001\360w\303\216P(l(\007\365\327\031\340\013\262/q\240\267\002\373a\267\001P\377\325M\014\234\215\323\007Np\004kW\271A\177g\303\366\004\207\260`\274y\020F\332\221\201\262^\340n\n9\337\376\310\236,\307M\215\"\220\270\033&\314\"\344\347\336>\r\371>s\004/m\207\223*e7\034Z$]\nl\274\377\334)\200\235\264;\220\240dl e2\243\366A\"\204\221\272x\310[\244d]h}\257\332F\270\275\366O\254\353\257\000\246\205\353\215\333\031\3351.\005\272\377\302\203\241r%G[\356X`\317d\"X3\"\237\374\241\2404\366\345\301\035\365\221\2413\030\014\017\217\333\3670T\300\021\301\240\243o4\327\033\223S.\0047\220\317o\240\226\206\217\r\205\025\311\334n\261\271\047\223s\2664\302\177\364\212\204e\207\271F\311\340\247m\300\233\357\214\272~\342\002.\226\245Lw\005;$\322,\262~\352C\002\232\354.\027q\"G8\270\323\217\3368\274l\254\232\034\002\351\002h\r\3531`\277\373[\210\034p\025\030s\260[\010\342\267P\333=\256\312\302\307\371\236\212\271McL\232Dd\274\211^\024b\353r\201\233\352\r\335\007gQ\032D\272D\247\005\032\304\266?\177\353B\247\204\221\034\362\0354\202D\301\020\1771\007\242\257\222_\205\np\215k\016A\003N\243\267\3242\301Tx\003\241\312\355\260k\t\275\000\370\374\300\003\307\213\360\242r\220\342\342\022\205\310|\205\365\n\\\373r\376\021\024Cq\003ZU\372d\346\326d\035\340\242s\276\222\254\004\267\250\003\n\047|X[\265\372A\244~\010\235\377\031\016\360\302\t\366z\017M\205\274\373\020\010\270t\343o\302B\252xS\260\333\010\355S\346\234i\247\324\n\036X\3576\022L.\233\200E&Q\275R\006\035\334\\\201\347\337\2276\362\030R5C\361z\014\355\341t\030Z,\374N\003\247\251R\003ha1\221U\242/\n\213\014\262\225\334\017R;\233\213\3455\010.Y\302\200\266\333\036\2411\245\311pC\370\314\ta\315\231\352\202\372\213\0227P\346E\262Xz\216\316\t\372\352\"b\021S\246\342\347mOs\317o\246\344%\344\217C\320G\237\244\266u\227u\272\367/\017\017\266\351\203\232,9\267\252b\327)\317W?\321\275\353\323\255""\374~\3119ua\3469\350\344\350\305\323\234\347\267\335\277\354\257\341\333\r\354\265\247\305\354\3159\325k\306\345\007^:\233\362\037\t=\\t\276\022a\343\325\360\343\343\253\232\266m.\233\013\370\270yol\317\364c\360*\347\334\204\366\225\017\205\004\370@\034H&\210\t\240*{b\271\252\247qT\357\n\035\361S\234\240\363@Nb\t\336U>\005Cl\000\332\0005\225\014J:h\206\210\241\321U\350\240\236\332\001\236\210m\240\035t\003\020!\321U\370\024\rq^\272\016\202!\276\200m\202\356\210\232`\207YWUGpG\262\253\274\010o \233\312\006\370\257dW|\027p\000\337A\367\325w\224w\205{@=\241\036\320\017\300#\356\242\035\264^\332\007\300\003\337\024\356v\373~\357_\037F?\242\034\334\035\222S*\raQ\177\314P\267w\000\373\376\365\033+\305\3710\r\205\226\010\301\211\002\033a\036\250,\001NG<{\300r\007\303\235\255y\017\360\223\312\250F\336\346\276\003\224 6~\217^PAP*\376\254G6\215\305\254\203\036\250\251\305K\240\353\036\344c\201\332\202\206\t\352\026\273$;\221\340\330o\025\306\307\324\300_\220\216^\305kL\242\242Q\375S\213\301\\\3571\250\263\016}Gl\357\255\005\3378\247u\035z\216\240\034\365\251\201s?0\357\270\323\306\355\330H\364\365S\342\267\226+\306|3f\207fQ\363$$\304\260\273V\371\245!\375FB\302\3635+(\344[\325D\243t;\337\233,\210#\324/\030\216\261W[F\371\345\262\023\253_\020\332\307\254:\270#\347\007]=&\n\361\276\265\201\243\352\275L\344g@\315\210\263\252u\263\346\340\343Y\371\300>\255\326\034\233\325\3449\365\035\001V\232\346<|\313\3522=F\017\227#Q\217\047\355\236\325{\224\365N\375`Y\204\\\331\246F\010\364\365\036\\\0026\313pC\330\017R{\204kO<\332^G$~*\017\002\034\336\370\264z\241=\223\247\265\3706\225\365\024z\024\n\217P9\0317\266U\347`\321\352\007\"\334\355\001\221\361h\365\004\360\005\245e\375@\344\013\334\254\372\213\020\375\200\333 \333\233z\201&\303\255\251\275@\263r\203\220\336\241|\241G""\\l\275\236\352\255\332\355\364\311\014:\337\024\r\315\207\324-=\001\241\317@\372\344*\260jn\206d}\361\325\227\217&y\270\372\214\363j\217U\343\220\355\374\014:\017\275\021\313w\272\260\037\2128\020^\266Qg\037}&\334\331\037\224\365\003q\234\337\3410#\352E;\244\311Q\234c\363\003\321|O\217}\315\222\350\253\335\315\2477N;x\267Jm\331w\227[\372[\301\372d\360\325\256\254\327\366s\273\207\212\257-\253=\0309t\317\233\213N\316n]\234\2747we\331\256\367\303\217{\247\006\034\324\261Qcg^\350\266\324\345\353\301\327{gWe=\233k\373\242\357\321\310\376~\276\014\3718:\361\321\233\257\022\003(\013\250B\312 \336B5\304:\350\235\025\016\360\246`\016b\216\372\206\260\275\340M\345\r\360\r\220\r\201u\221\326D\325P\324P\352\240o\250w\2047D7A;\302\373\352\355\251\336G\256\017\000\274\000\356\250n\200o\010v\3017D7\2017\2207\2217Q\335\027u\r\320\r\300\r\305;*v\025\354!\330\007\272\241\334W\200\036\350\276\350\235\321\356\243\335S\200\036\350\235\321;\252pj\367s\276\245\374\177\260A\024\t\004\021\214Q\020\204\025I\002AT\t\031\037v\21226s\362\330\027o\343P\200\325\254\356\212\047\021\332\332l\232 \237f\342m\273Xi\211em\252\033\205\010Cs51\260,\343\360!\323(?\201\301\325\364+\360&\333l ,M\233?\203\360Q\032\276\313\371{\262\225\010MJu-=\221\354)\203\345\3367R\252I(\370\202\242\213`\267\025wnU&\215\373\251\225+I\007\336i\267\033j3O,\265\344\244\333\r\220\2046\033\234R\032}\273iU\332>hm\212\335-\321\327\251\006\267\272:Vwn\235\212\2206\365\215&\331\344gY\333ngE3\347tp\236M\333&\370n6n~\327\267q\335a\251\3117m7E\270\223\272\243E\3333\351N\235\267\301\210\352\374P\036~b\372Q\363\017\231\363\"\366pl\267\355\275\217\263\333\277\335\364tg\241\3329\034M_om\212\236\033kW\321\016\2717\267{x\"\245\246\036=\226,\331AL\n\202V\021\342\227\212\017\021]\r\302\361\026A\024\204fH\250,\000ZF\3407\007\210\267\203\305\033\222\361\003\010\036 o\213\0220\206\345\270Z\217\025\360\026\344i[\203hj\\\201\265\036>!\320m\016\240\330.u\261l\017\035\307\211\332m]\241\332\216\301w.\323\313\305y\036\001s\227\352\000A\357\367\373""\374\036\356\370w\215\337\024\035\333\047k\335\333\331\357\217\266\035\207ey\374;;\030\366\035G\230\033M\247\232\363<\203\353B@y\373\260\330\303e\261\305&\334Wnm\225RS\030q\254\206Ru6C\021L\313c.R\336E\227)\224\273\364\244\262\257A\013\032H\200\220\203\377\301\274-\343yo\004\204\310>\177\252\254\010\002\213\"\305$\200,\202\221H\002\202\240I\"\310*\204\212 H+\010\254\001\001\222\020\026I\000\213\"\202\212,\005bEP\005\200\240\242\310\002\254Q\005\004EU\210\305Pd\221dI\005$\020\220\005\374\371\256\335\206\305E\330\207\340\317]\200\240v\321 $\322\240I\010~+\000\201\241\277{\251\252\232\241\250\272\250jj\201\375H\240pE\037\313\340\377\324=^\010\355\370\305\372\017\306\276L\276N\334H\322l\364\373\321N`@\203\006\014\005\342\367\374A ?\022\014P\027\304\010\301d\001\002\003\030\202c\217d\354\273\0246\006\006,\016\307W\260+\320\t\321\000\t\031\001U\rH\201 \010\025*\250\335\343\000\001\260C`\213\027y\274\000\337\250\007B\005\346\033\207\263\240\010\033a\000@\204\200\210R\315Xm\035qPr\212\"\353\251\250\010p\334\033\262\311\266\356\363\300\035\306\246\032\302G\233v\343w3\2657k\375\202\";TW~\202o kU\0020\214!\010\202\004\210\2237f\342\345\025\336\363rP\021`\211\010Bw\205\245\337xw9\360a\341\0301b(\310\230\200 d\"\004L\201\323C{\277\207+\\\207\0220\303p:\206\274\326\334\226\204!\000@\231\013\200\272(f\202f\212\346\274\2000\304\310\t(\307\r\273\000m\024\204\222\256h\"<\335\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\326\357\364\366\002\006\033\321S{\265\334\241\270\256Tf\"\006 \0319\351\267v\305\024\331\262\377\320\n\203\313r\006\273\360\220\204B@7\306\200@\206[\t8\2748\002-\202\3623\014\304P9\240h\261\004\r\200 _/%\025\030\340d\344\257\0208\202\001\275N+\304\3056\250h \206\207\035\241V)/\214\004\336\246\256\252\006\256\240\270a\220\304\205~\255\024@\271C\222\307K\3124PtGD\034\323~\361\035\352\342\352\220 \242l\341\252\2179y\272n\240\243\r\365u\247\035\200 ~\253\357%\2369*\320\255\003[L4\357K\357\217\344\266\022\375U\347\345-_\246\356,\213\337\343E\331\026\365~?\216Y\326\306\244\021\377t\r?I\315a\272\001\177\303\313\331\334X\037\2128;\341\337/\243\036\247V\3075\334\020\251w\037\331\241\265\277V\301qk\017\245\231\360\245\322\326\002\263d\224\230a\000\373-\274\r\277\265\356\241.\240\037\355\340>\300\342\346\t\372uy1M\352 7^~\215\252:e\007^\326\036\363a\311*$\365\305\233\365\212\005\272\240\371\030f\222\346\277Ml\330\256\037\354\346I [\205[\017\332\026F\007\242\242\373v6{\r\025\025\257\333ak\t\317\272\316<\014\216\313\031\260\205\263\255\034\362\277\322\274\331\226\270\371\2607\374\337\321\230\306\376;%~\206\267\355\315:\246l[\362\365k?\036\006n\345\013\207ay\013\366J\177\364p9\366\007\237\323\3458\267C\344_\205\250\016>\316?S\337\333\270\033\0202~\277\222\241\035\275\361\333\274G\317[7\272\303Dr\252\233[\246\\\253[\367\217\320@\360_\302\216\266\367\235F\331K\332\3338\237\315U\005\200\3723E\305\327\rb\313\341\361\360\256\301\221\306\327\013s\251\2334\250\373\r\2377\371\261\300\321\027+\306D\250\207\212\025\036\3674\220tUj\274\325,t\344\352\375bB]\335\307\301\336]\351\021\260\010?\267\244\361=ORQ$\"\237rO^\357\262\027\250\016\246\231\242\347\025\020\301\034A\330\t\260S\327}`\323L1\204\032*\227\032\246\361\013\256\302\354%\\3\234\2734\356\210l(\224\274\263\203\215\231\276x\204\303\223f\356j\360\206\341\251\266]\3276Tx\272\306Cp\r\223q\326\233o\304\315\r\323n\200(\336\240\206X\241\232l\315O\252\177F\361\021\204\004\324\023w\370\250\246\337\350\t r\202\233M""\252;=\214\351ss\t\222%\2620\202\270\001]\024\225$\205\\+\235\264\3726\271\037/\027\343\305t\371\365:\203\222\237\265\355uR\272\275h\047Y\036\257U\244U\377Oq@9\235\273Q}\274\201~\360\231\010\346d\344\271\2129\202\037\365\265\303\357\345\363\036\212\002\3069\204\000c\233\233\306LB\020\024\024\000}\224\000\204\307\n\302P\024PQt?^\020\025\223y\267\250\034P \034\234$>\355\327\360as4LrA\327n\335AB\002\3525;?\033\357\227\320\257\210\276\257\0132Ix\257KE\227\016\277m\315\rw\317\177\346\346X\303\322#\375\177\305\343\233\362\237\356\236W\036nqZ.A\374?(\346\236\037g\t\302p\2403\210\336\341] ?\265q\034\"8N\021#\221\032\003@\013\200\324\001\2270g\260#P7\372\225\273n\327\3112W=\246\211i\025\264J\364\200C\252\200\201Q\013\373\222*\376*\257I\366\331=\177\177*\002\305\010\n\000\263\037\355\241/vU\240\377\237F\377\227\323\257\037\2363\022\307\021\303\214\004\0060\265\210Ic\302\002\340\306Dm\341\312\002\003\0327\304\217\310\031V\200\3770\017\230~\0240\r\214j\007}\337\235\257\2202}\364|\314\316\356[\315\300d\310,\031\0009\371\320\236c0\200\006\023\010\260\037a\306\227\007\026\372>\277\037G\327\267\267\332\354\326\047f\307\277\327\307\n=\342\301RH\325\025\010m=\335\223\242\341D\3624$$\304P2\214\362\263\276\310\334\210\0226E\2200\231\004d?vV e>\302\031\272\363\205,\306~#I\217\277!\212\330\177\005\305q\001m\212v\307\177\227\005\005\005\240\344\364\317\371\376\037H\211\377?\331\t\353\311\370_]\202g\n\252\252\252\253FV\267dG\205[c\354\226\253\021\014`\332#\364\210\254\251\350\367q5xj\370l\000\016\010\252uk\202\320\nV\312\013\246\211\320y\350\364?\353\271\320\310@zb>R\007\250\006\257\212n\337\270\336\260\331U\020\273e_\215\366\303\013]u\022\340\331\007\267F\334(k\336\22300\344\353\266\254{ts\020\354\2348h5\324\341M\363\264\310\272\2077\254\351\315\047n\215\3740\367>\261\376\037\304\252\252\253333;\371D~\034x\261\267V+%\253b\022VV#\2141\207\003\270v`I\027\217d=\311\t\353\317\353\373$\222\262\036\312\252\252\252\252\244/\352\020\242>\241\2040\024]j2]\020\200\272\201\001p\270-\372(\374b\272""\311#\224\314\271\255s6\363oY\264\326DYVL\242\014\250\266[\n\351\231\013\177\"\026@\313#\367\273\315\256\325\275o\332!\264\332\363\353\351s\320\036r\233\303\343\350\276\217\241\334\371-\361\272>\240\217\333O[\211\274\004\rU7\326\366\321\2200 \220\0177[8\304\010\006\260\377\326\250\332>\243wI\244\302\316\004\351\263\203L\267M\336M\363!\243\255iX\244X\220\020\217\005%6\004\207Y\237\223[\325\355\306\370\343:\332\035Y.\327\236\253\330HBs\256:\272\3258\014X\020\0149\340\346@&qzz\352\022pC\020\274\272\364B\371\0142\260\277\264\310\225\366\025\017W\371\220c\006\004\224#\333hY\031$e\013\356\264\004\222\024v\354u\336\277`H\206\261\274&\346\364\222I$\222I$\236\013\223\255\275F\244KmQ\262\031\002D\364E;\217o\310C\327P\210\342D~\327\035B?`#[\304R\021h\203\001\253\364\354\203\344!\352\220\363d\362\376\022\014\201C\256\273Z\252\252\253t\351\373\373,\376\326\370\177\004#\347\346\325\306!\034f\244.\225\321\324\341\322\237\233Z5\200F\202\360\353\010\233\"\354\220\0300#B\033#C\t$)6)*\261\313\372\271\342Mq,&V\212j_\242\340L\332K\260Qh\226\265\026a\237b\230\3032\230\3032\230\303?\0351\206n\230\303?\0351\206~\376\230\303>\3451\206n\230\303>*c\014\371\251\2143\232c\014\3734\317%\206\265d\272\242\302\352\230\303>\3051\206n\230\3032\230\303<\224\306\031\3051\206n\230\303?-3v\032\362Y.\250\260\274\323-\206y,\227TX^i\2143\212c\014\357La\235\251\335\206yi\266\031h\260\277\222\230\303\260\232\ta,&W\356\211\226\2245\252t\023\225UUUW\352S\202\026\006y\274\345\244=^ C\256\241\333\2759\347\242\362\346\027\034\302\343\230\\s\013\216aq\314.9\205\3070\271\352\020\354C\320C\277P\357\371i\217L5\354R]S\242\026\303:\2460\315S\303^\266C~\2756\252\252\270\355\305\340\223\326\232\326\272\352jv\232\237\233\335\363\010\004\002\001\000\200@ \020\024*\253\336""\220bT:\001\343\266\221\006\340f\326k\371\nA\214(\265\225\003\373\024\\\324\273\047\247\345\347i\333\244\235\273v\247i\273&\335\327$V\271\"\265\311\025\256H\255rElsJ\337\227\332{\377\047\266\246\2655\242|\036\337\277=\360\332\3326\266\246\275q\030M\233\267\003]\001\331\332\026@db\310A\224\211\264\225\030$a%-\033R\022\235\333\031\306~~\227TK\214\242\360\226\355O\344\022\340LT\350\023\005)\017 \350\276\2012\302\311\3650\242\361;x\020hN~}*\252\252\252\256\020\361\003\355\020@\224\332(\242\212(\243\351\321\017!\014HtC\261\360\247f\033~\345\010t\211\260\021M\260\024\010$P\020\326\353\t\024;}\317\016\371\300\242\212(\242\212(\243\255k3333333333333333\303\210xuD\207\233N*\252\272{\270\274\220\337\230\206C\217-7\245UUUU\343\300\203\003\261\300\210\304DDDDDDD\275\365\213\337\307\216\026A\220\371,\361Bx*\252\276/\3518\276$8>;h\225\2232L\314\330\302\304\023\021\026&RVd\231\231\261\205\210&\",ab\t\210\213\030X\202b\"\306\026 \230\210\261\373\233~X\371<\377+\364\276\005\221\307\334\033\350\342qp!\253\247\223XM\374c\031GW\001\355<\241\023L\324RD\"\300$\222P\206\242P\222HB\220\200i\352w\363\267\2125D\337\021HF \020\311\031\264\266\2567\304$\177\234\204O\021K|C\304u\010\200\210\010p\216\241\023\235\\h\344\343q\000D\202)\000\211&!XD\"\263\360\315K\362\246\246I8\372|\353\341\3172\333m\266\333m\266\366\266\373\266\335\333mkhs\t\225\351\227R\214\304d\027\020K\002b&\301 \047\003\1770\2348\211\226\002c\270H&\316bb+p\231\211\273\226\2728\020\362\303\315\315:\220e\362\220q\003\277\200\357\276\360\207D\035\216\367\274\324\305k1Z\314V\2639\255fw/{\271\234\267\272\314U\360\200\201\202\005\200\200\242\014`(R\204\210\350q]\215\356\322#\205\021\3337\020Z<-D\310M\001.\314K\262\304\022(T\023\314\211\303\202q\332G^\023<\240\000\000\000\000\000\000\006\2635\231\254\315fh\224%\tCqv\330\276[\201\311\026\234P]\324\022\362ov\241r-W\240\267Ty7\273P\271\026\253\320[\250\340\033Q\306\032\343\004Z\370\240\270T%\344\336\355B\344Z\257An\250\362ov\241r-W\240\267Ty7\273P\271\"\226iGL\345\t\032i""\237)3\021K4\243\246q\277Y\221\352e\324\034\tlK\207R\035mm^\366-[k\231\047\263\210\004\325\023X\031\0262F\022R&\263R\001\031$hu\251(\326:\340\364\265\211\356\026\320\266x\231\272)\245\245F\014\034\274sR\332\000\000\000\000\000:\345\232\234\271\023\342MD\324}\2601\206w\2460\317\226\211\362\366}+\240\270\343Z\326\265\257\3352\332T\251R\245J\235\014=dQh\364=S\301\264\344\022\365\335\235\274\313\274\030%\372\367rmf\301\372>\312o\307\047\r\3605\335w\\\327\3271|\223\t\276\013\334\023\234*j\247\315\"\013\"\014\212\002\266@\371f\002$b\264>c\0325\216\220\232\200\231\232\"D=\241:\242\365w\004\224\t\020\354\tx\231\tp9\ta(V\240\203\333\022\t\210\233\004\331bI\250\207n3\t\047\337\350\206h\206\203w\022\030\031s\0033031!\201\227033\0033033~\2672zS\342\373\304\373\307\275\357\001\236\346\3663\312\341\360\030\301vX\256p\031\341\010\3061\220\205\ng9\006\n\212\215\047\2751l\367\214~\037s\350UUUU_E$\237\200!~r\010}\317r\237t\372\273H$\023\353\212\252\252\311$\202d+\001/=pO6\223f\3126\nB\010b\047b\035\004\022\035\366\252\252\252\252\271!\262\037\005iw\225\355\270v\361\2460\317\202\230\303?B\230\3035La\231La\231O\216ju\235:\3652\302\323,-2\302\323,-2\302\323,-\251b\255j\235O\243\037\353\266\2142N\276\223\261\325\000^\252\365S`\327S\242\252t\311\360H0X\013\024\021\025\240O\2002\014\024DQ\244\370&%\370\017`\373\357\263>\237\252\252\252\252\252\271\365\247\243\336\203\224|b1w\256\266\316\010\\\031%D\376\327\020AT\367\002)$J!\220N&\265\333\241M\302AB\340K\td\307q\322&\\\004\215f$\023\210\237hL\357\022\300\235\275D\334%!\246\354\004\256[x\047/\257O\002\035S\362\374\210\242\212(\242\212(\276\261\010i\222\02222222222r\023I\315\303\020H&\301<\242\035\020\365Hl\332(\242\212(\242\212=u\326h\206\264\266\333m\266\333m\266\333m\266\333\304\324\342jwk55:\315O9\014\017\314Cr\024v\331\017\244\206\004,8!\3657\244QE\024QE\364\020\354z\333\362\220v\220\315\220\362\220\321\317\2654\305\213\026,X\261b\307\0179\336\300\363np\361\257\016\375\265\305\333\337k\213\244\356\020\360\227|\220`rQUUUW\302};\361\322`""\303\353Wx[\034X\226%\312U#\031z\212x[\032\261,K\224\252F2\365\024\360\2665bX\227)T\214e\352)\341lj\304\261.R\251\030\313\324S\302\330\325\211b\\\245R1\227\250\247\205\261\253\022\304\271J\244c/QO\013cV%\211r\225H\306^\242\236\026\306\254K\022\344|\341\311\326\273\234\345b\013\226\047r\274O\354\376\234\2316\302D\245=~\265\316\205\316s\201\324\273\200:}aM\205Sm\353\004\020\204d\220\010A\245\036\262\320\3020\204\204\214\241:\300Q=\375A@\350\232P\t\274s\236q\3168\377\037\026{\034M\342\207\007\212D\t\002\022FR\207\024\264\031\002BJ\023\232\216\300&wE3\367\350\202j\205\332\202R\227%\352\242\346\031\362\323\350\346Ay!j\252\252\252\375\220\207\322C\260CA\017\234\262I\363\365\016\366\236\0142\323P\333\357w!\275\303\217\232\233\201\253\re=\356\t\0470\351\241\006\025\"\221H\244R)\031\243\355\200\006y\242\216{\361\032?\263,T\315\\\350\t\030\255\013\234\005\022FR\231\326\202Q\276h\202sD\200\231\242@\023HJ\022\204\3535\320/\tp%\263\250\023v\002^\026\n\301\t\203d>\231\017\302C\370\2046C\2554!\301\230\252\252\252\277\\\206w\202\014~\225\tI\321l\"tkM\321-\343\322Z%\256\242\255E\373\344Ovjf\244\264\000\000\000\000\000\003SQ\347\242MD\202A\204B\035w!\225X\252\252\252\270AA \020\023+\323g\215F\3217\337d\277\271E\300\230\211\310O O\246\t\274K\204\241 %\347R!@\t7\357\337k\371\\&\002Y\004\202A\010~\000\202C\300\207\035q\326ul\326\2634\353Z\315b\265\305k\212\327\025\256+_\237\366\277333333\334\272\201=\231\330;\223s\325\301\250}\035\235\215U\016\273\325Pq \032\260#\001\240MV\240B,huP\206\251\225\225\235\240\232:teD\267\005\030\"Z\352=\263_\221\367ww\016-=?\242\252\252\252\252\273\310o\340\247\350q\345UUUU_\223\235\303\236i\277\023\277\213\247\277m\363\340^\210)\014\357\324;\374t\344\362\374\330\252\252\355\307\025\341\252\252\256\234q^\335\223[\021m\266\266\332\013DM\021UV\252\013DM\021UV\252\013DM\021UV\252\013DM\021\232\253U\005\242&\210\315U\252\202\361\231\303\213\340\213c\026\306\002\321\023DUU\252\202\375\270\t\256\224}\315\225\003\360\241\212\006\225\037|\004\036\256\3574\022\035""\316m\230\246\315\364^\206\n_d\277\236\213D\266\224c\274Mm\r\372\364X[NXe\242\254/\024\306\031\345\244\271OW\303\213@\000\000\000\000\000$\324\362u\355\337f\246jN&\247?\177\246f*\257w\301\305}\200\207i\003\267\177ZAm[\333\230v\365)\342C\2169\253|\222\334\253V\325\253j\325\265j\332\265m[%T\225\271\254\257Q\323\020\367\r\304\304}\032\000&\210\035X\251\010\005$\032\004\016g\001\241\003\032\027\241_\202\343\261\334\277\004_\215\304#g\270C\204A:\303F \004\361\001\"\262\000F\t\020(D\361\202\033\010Q@\221 \220\r\022\024\202A\244\030\t\010\032 \220H0\003\025UUUU!xUUUUUUUUU]\220\340\206\243\262\036\356\004*r\252\252\252\252\251\016\364\207b~-@\234\211\306\355+\331\351\320\367!\301\014\220\241\005 \210\220\203\324<2\236\334\355\234\225\354\366t>\235\231\205v\355\320\352\322\272t\350P\2068\3431\010c\2163\020\2068\3431\010c\216#A\316\034\320h4\006\302Ti\246\371h\2028\\\367\375\231Oy\212\362\004aF&H\010P\006r\005\2513\222\320\346j\363?\272&Wz\215%^\205\371$\222EUU\371=\250\001\214\226C\332\327\331\010f*\252\252\252\342`&\002`\047lP0\023e\214\203\313\022\010XL\350K\312\212(\242\212(\242\235\375\357\177\354\020\356\020\340\207\303\366\210yI\0472\034\257V\252\252\252\371B\032!\340C\361v\270C\300\207\207\207\034q\255O\013h\000\000\000\000\001\317\257\036\022jt\232\226\364\351!\311\016\215\355UUUx\363y\237\336\345\3078.9\227\034\313\216e\3072\343\231q\314\270\346\\s4C\310B\220\361!\204\017G\217\222k4\255\242n\023Q\303A6\231\211\245\333\004\344y\302B\300^&5 \004\n\200\\\004\033m\047c\225vr\305\325\331\313\027]\305\236\305\315\225\256\\F\271q\032\345\304k\227\023\332\357\232\232\324\326\276l\237\037\342|[\207\002\371\374\373\241\010\202m\006\263\362}\034)$hH\342a\000\316\000\342@0\034Na;\327\301|\021pN\021\276#|\203_\360\035b\324\250\323\225\306\026C\3518|Km\321\242&\330\231\006F\354\002\341/\t\336\023HNf\270\234\321=\213\372\235\275\342\\\324\276\341>\077\077rjz\332\324a-\000\000\000\000\000\266\333\345!\327\237\210v\325<\344>\211%<\275\205;y\2270\314\31433%\266\313U\213l\266\331m""\262\337\047\032\232\3535;\346\247\177MN\376\362}\3572\302\017^;j$\317\235\004\005\000\370\217\240\223\266\220m\346\241\212\006\225\014P4(\256Q\020$\005\027-9\321ICJ\322X\235\0264\270{!\376\307\027\004d\260!\220Z\020\373\321\"NZ>\306t\227n\242\321-Ts\tq\004\311j\036P\027\336\230q\243\234\361\010{\\:UUxe\\a\236\305\235@\232\260\327\271La\231La\236\3251\206{\024\306\031\272~\002\034\200N\275\247\333;\367\271\347\267~o\367b8A\367G\335?\237\375\006-\277\346\321\374\047&\231\257D\010\004\247`\023\372\315f\275z\375\177\207\000\215\002e\373\036\340\347I\006\261 \366\216H:\020\206GB\030\366\236\273\"\267\320\342\331C\037^_\254|\204>C\350!\341\314\331\013\003_k\274<~\212zwUU]8\343\234\265$\324\3515;\272_\277\361s\373b(\241\227\n{\261\024\234\"\223\322\212O\235\275\335\354\325\313Ir\323\361\263\266\315\354\237R\212E\024\362u\335\336\315\\\264\367\270\335\336\315\\\264\212):\242\223\347\"\223\301\024\357\231\341\263{\047\311E\047\211\024\237-\024\235\221I\315\024\212):\242\221E\"\212OB)8E\047\312E\047\300\212O:)8E\047\314E\047\254\212Nh\244\362\242\235\267\273\275\232\271i6\212O\205\024\234\"\221E\047\211\024\234\221I\302)<\350\247\036-\335\354\325\313I\315\024|[\273\331\253\226\223\232)9\"\223\271\024\235QN\357\r\335\354\325\313I\363QI\331\024\235\221I\340\212O2)<\021I\336\212E\024\235\221I\331\024\236\010\244\360E\"\212Nh\244\357E\047\225\024\234\321I\343E\047\202)9\"\223\271\024\235QH\242\223\271\024\212)<\210\244\344\212N|\367w\262\\\264\233E\047\302\212OO\227w{%\313I\343E\047r)\337\342\335\336\315\\\264\236$R(\244\363\"\223h\247\223=\0337\262z\350\244\363\"\223\322\212O\032)=\204Rw\"\223\252):\242\236~[\273\331\253\226\223\316\212N\021H\242\223\271\024\236DRuE=Y\352\363~\tg\317\234f\233\323\241\323\202(\244\365\"\223\316\212O\022)6\212E\024\212);\221I\351E\047\221\024\235\265\047#""\273\203\216\t\343E\047\340\"\236\334E5r\322sE\047\254\212u\317g\305\305\343\203]\021K\226\355T\223\322\212O\262E<\274\367w\262{\010\247\217\034R(\244\362\"\221E5\351E9DSW-%\313I\321\024\235\310\244\357E\047DRw\"\223\204S\227M\335\354b)\253\226\232\346\212OR).ZE\024\235\021I\350Ej\020\361\356\252\252\252\252\251\riUUUWs\261\016\202\036\275!y!\360\020\2605 \372=\036$+\035/U\324H&\202B\302`&\320\350\337\315\003\217\0324\023\206\354\010v6*\252\252\252\370\020\316\220\353\232x\020t\206\274\264\331\331\024QE\024QE\314\332\033\366)\344 \351\rz\264m\317`\232g\244\326\375\326\307\0216\211\310OLD\3217@\335\302\213\221\026\021}\367]\367\335\267\364\001\005\013\211\016\254\005\257u\213\335\250\304,D4\\ \246\252Z\252j\240\202\355T\265T\324b\026\"\032(\004\022\306VfZN\030V\030al3_#\347\222J\314\267\337P}P\365_UC\271wx\200mQ8E\323\270\264\223\216g\372<,\244.\344$\311\007j*\013K\356,\367\014`K\342|\207MN\001,oA5\204\305\273\231\253\003\313\363h\276\3641\270\t\010!\346\006\207lLv{w\t\202\227\211[B\035\310y\210}\215\252\252\252\252\252\252\252\252\252\257\250q\302C\201\t\354\220\371aG\323$\223\2038\245\264\266\226\322\325\025TUQUd\017G\352z\374\021E\373\275( t\217K\323\344o\373\376\311\326W\262\324N\232!\242\002D\r\025\010\006\210\0329\251\274\047;\"\007""\303\365i\367\276\237\177\323\201\017\253\245\356B\325UUU\334\002q\360\241\323\343\023\343\343\222;\047?\213\337\255NV\333m\266\333m\266\333m\266\333s33>\247\301Hg\035\220\355\367i\306\325UUU{\220\362\236O7\206l\207=\320\357\226b\031\325>\020\200q\333\267l33\014\314\30330\313Z\305\255k\026\265\254Z\326\265\300\336E\027{@\260\276\357\302Pu\016\242\354\232*.\211\267\244\246\332\201\177\276\047\243P\017I\226\321\250Q\021a\037v\361\253I\250(j\203\360\305\032P\326D\200k\t\035g7B\006\206\265\034\260W\335\023\266Z\374\013\367\350\270\r!:\232\367`\201\203F\211\335\022!\330\206m\r\374\264\354C\302\273j\252\273t\342\366\201\016\357\301\000\226\252\252\252\255\200}\317\271\177\026S\202zC\337\364\317I$!\351\001\362\036]\035\023\322\017\030\023\227=\324/eW\241@\202\035\002\020\016\200\047F\231\021\353\202w%\211\024\262\236\200\220\272\353\211*2\"\365\2314\313\\\230\026\005\311\201`\\\230\026\005\311\201`\\\215\270[\210\333\205\270\215\270[\210\333\251 z\017D$\017@\204\026\301\013H\000\264\242\204i@\251|r\357\024!iH\362\030P]\230.\037\310\202e\243\212\"\320\206`$\034\30132L\26121\363\004\244>RD\206/\264~\303\0003\025UTU\262@\317\257\355\256`9\203\230\203\230\016b.`\271Z\361\035p\313\004\320K0y\207`2\220\014\305B\002f\002U&b\347\t\323t\265\240k]M\240[2\214\2215\2013S4\200\246(%:Y\241\226\212\031}\016~/c$:/A\035\0041]\206\301]Ss\300\031\210\206j\t\005\316\026\006rQBT2@\267/\271\3071\001\307\273J\026\024i\305\245i\014\213J^\333\272\263`K\021\244\014\210\302\222\310D5\226l\303#\n\000\306 \031%\215$\313\032\274+\354 \023^W\256\320\267\200\272Y\322\326\322,\005\324\026\200L\310\316P~@ls\307\021\324p\223\245\014\212\352A\350 \031b\004S-\0303-(\327<\247\276\031\301\234A\027\375\240\241P\206\212\202u\024\315s[\305\213\356BV\225\325q$0\344P\257\027\201\345\32008i\376\347\016\235\355\277\206\311\224\010f\212\021\034\324a\232\364\025\350E@\312:`\232@\337\315\202\372\275U\"\360\005\273\350\030\026[\313\003\047\221\203J\320.\275\356+w\247\322\275w\375\241\260\240~E\\\244C\261@\345\253\034\266""\035C\020\231\306\240\000t\210\275a -u\250\027p\200\245\360H e\2304\032\321\201\361k\"\272q\264\227\351O\216n\031`D\273\035\216\265Wc\366B\2411m\304\357ui\337\t\331\336c5\367\357Y\3434/Y\310z\335\365\226\230\0226fq\353\267}N/\201\301\355\326\375\361\342\"\027\216\010\235Bu\325\212m\315\342\277\201\354\021\275xu\347\363\233\266\371\320\345\303<\324J\3027V6\345\372\374:\362y\340)\247\326\333\347\257\027b\264\336\\Z\346\332\256<\355\\\307[\215x_\252w\337\271\361\266\317\306^#\013\2410\336Ga\330\004\005Q\010\005\020\200\201\020\033\342\347\267\225\221-\201B\302\013\302\047\216\231}\277K\353\366\277\252\336\277`M\202r\213\264\213\264\270JUn\273t\230\334m\207\021\"\"a\004\023t$\020\036\021r8su\356\003\356eK\201\0033\033\247T\353Z\337X[#\320\317\303\323\037%\370\247\026O\202\374\276{\257\313\354}\205\307\232\2142\361\206|\027y\214\327\266\365\2363B\365\234\207\255\337Yi\201#fg\037_n\372\234_\003\203\333\255\373\343\304D/\034\021:\204\353\253\024\333\233\305|\276b7\246\360\274\374\257\333|\350r\341\236j%a\033\253\033r\375zW\223\317\001M>\266\337=x\273\025\246\362\342\3276\325q\347j\346:\334k\302\374\263\276\375\317\215\266~2\361\030]\t\206\362;\013\301\260\246\267\220\266\206\214\366\316=\267\332\234Y8_Of\353\351\354}\205\307J0\313\306\031\360]\3463^W\254\361\232\027\254\344=n\372\313L\t\03338\361\267}N/\201\301\355\326\375\361\342\"\027\216\010\235Bu\325\212m\315\342\275=\2427\246\360\274\372?m\363\241\313\206y\250\225\204n\254m\313\365\351^O<\0054\372\333|\365\342\354V\233\313\213\\\333U\307\235\253\230\353q\257\013\351;\357\334\370\333g\343/\021\205\332c\205\272\263[\257\013\"q\022\013u\324\275R\352\025\270\323\t\221\235\257\304\266\303c=g\036\333\357N,\234\257\247\263u\364\366>\302\343\272\2142\361\206|\027y\214\327\235\353\217\333|\350r\341\236j%a\033\253\033r\375zW\223\317\001M>\266\337=x\273\025\246\362\342\3276\325q\347j\346:\334k""\302\372N\373\367>6\331\370\313\304at&\033\310\376\271D\240Q\002 \266\343\240\201\220 \200\200\200\210\344\000\210\305\000A\360\026\032\301\300\323G\260[\201\301\237\032\307\272\375\251\305\223\245\367\372n\276\377G\330\\xQ\206^0\317\202\3571\232\366\336\263\306h^\263\220\365\273\353-0$l\314\343\317n\372\234_\003\203\333\255\373\343\304D/\034\021:\204\353\253\024\333\233\305{\375\2027\246>9\367\277m\363\241\313\206y\274L\006-\325\215\271~\275\365\344\363\300SO\255\267\317^.\305k\311\370\265\315\265^|\332\374\307[\215x_|\357\277s\343}\237\214\274F\027Ba\274\216\302\360l)\255\344-\241\243=\263\217m\366\247\026N\027\323\331\272\372{\037aq\322\2142\361\206|\027y\214\327\225\353\266\337=x\273\025\246\362\342\3276\325q\347j\346:\334k\302\372N\373\367>6\331\370\313\304at&\033\310\373\212\004\007\353\024\340\324K\013\314\t\001f\035\214.\020\206\271\313\315\266\277\304/\340p\230\365w\347\330\331\332\234Y;\256\376\233\257\277\321\366\027\036J0\313\306\031\360]\3463^\333\326x\315\013\326r\036\267}e\246\004\215\231\234{6\357\251\305\3608=\272\337\276\367\355\276t9p\3177\211XF\352\306\334\277^\372\362y\340)\247\326\333\347\257\027b\264\336\\Z\346\332\256<\355\\\307[\215x_|\357\277s\343m\237\214\274F\027Ba\274\212 A\260\265\305\2055\274\205\2644g\266q\355\276\324\342\311\302\372{7_Oc\354.:Q\206^0\317\202\3571\232\362\275g\214\320\275g!\353w\326Z`H\331\231\307\215\273\352q|\016\017n\267\357\217\021\020\274pD\352\023\256\254Sno\025\351\355\021\2751\361\313s\2663\350y\260{M\342\2401n\254m\313\365\351^O<\0054\373o\276z\361v+^O\305\244\333U\347\315\257\314u\270\327\205\364\235\367\356|o\263\361\227\210\302\350L7\221\000\226\004\200\315\223)\223\275\373\207\377L\211\314\014\311\001\034\\.s\225\023F\323LG\364\365n\270\316\276<_\314\206|}a\225""\343?X\301<\214/WL\305\307\3052]\2364\027\001\351\252\375\203\335\331\220\250\261\216N\352\330\201\212:9\333\352\356\352\330!\2643!+{\244<\257\350~\214\240\247\037\245\022\254\032\310\202\002\"\004I\326\342M\272\274[\006!e\254\232&\222\340\264nt7\313\313\356\037\301\022\300\200;\021SnR\340S\320\021w\260}\307\351y6i\270a\261\016P\202\t\026\236\327\326b\t4\010\032\026\255J\254\300\004!tP\017L$##\205b\332\265\273O[\340\235\360\np[\273\330Y\363\223\225\033\211;\212!\024\206\334[\337\340\266c\301\332\204\267\220j\\\203\007Q\263\275\004j\022\262\203}\037r\236!\310]\211\001\334P \275\265`\366\307\266~\300\317\312\312?.\010i\010\227\342#\030c\325r\261T\003\341\315b\352\002\321\357L*6^\0349\316\232\003\322F\005J\236\364j\244U\347\n\345\200\020\034\264be\247=:\007\305B}P\266\270\014\273\0068\230\026&?\037D:>\032\243\027\344\246\344E\323p\036\014K#>\255\275\361\t\272\377?\010N/\240i\267\037\330\340I\312^m1M\001\365\214\200\354\343NI\376U\347\342\047\257\236\210\032\317\365\245\275M\2205xp\260\032\241\226\331`|U$%\004n\223h:Q\354D\261\013\230\201U\303P\325\341$\314Q\371=\336\022\265\232\372+\251\245sH\353D\310\330vz\334\217\026\275p\347\010\021\203\t\027p\314z\3350\204{R\245\347\322\310\271\336]o\023\255a\331\225@{0+\217\003\201$\2233\217F\375\305\002\213\272\250\316\340$\277\340[c\242\0047\327\000vj\031\304&\020\204\001]Vx\273\213X\232\232\204\253\352\213\374j\245\352\302\272\301\211l\000\346\3668\256\205\313z\034\211\010\034\321_K\360\376\037\266\317n[\355\372\304\225\356\340 %\010!\341QB\370\000%\340\017\naG\t\201/\366\323\271\327\326\257\200\007E\016\001;f\244C\203r\005\327\351\276\336\262\367}\374hB\242{\002<\271\354\212\372\037\006\235\243\254\226\206Z\0056\025\253(\270`\327\330]w\335t\312\374\226\305\333N\346\343f\000`W\247\266\340\020U\216\312\240\241\013u\257\240p:\324Zf\350\000\337\016\320\301\263/\177\301\276l\223\t\371\366\177\307\362>L\227\255\220c~1\253\007\021b\t\341\001B\017\000\"!$\261\"Z\245\305s2\007\256\"\007_dSe\330\320\035>\236\216\245[\226&\250^\177,\003_+a\345\203v$\254\316\205s\235\2726\331\023\264\200v\324\010!\246\t\003L2\3632\363(\241\265i\330\264y\2057Y!\013\315T\263\n\n\341GC)\220\220\222\3412\344\222\022}\177\277\351\267\2368\047\264b\007\216\372}p\351\000W\025\3336\355\314\320\271\272\331\330\313~\025|\230\351\3651\310\307\342\277T\372\256\005_\257T\3356\007J\016!\000\372\261\341\303\242dc\236\244\321\2560\365\257-\230\233KS\020\310\201a\262\037\357\277n\225\313<\231\314V\371\271\236\303<\301\307\006g\215\362R\031Iy\263\255XM\354\247~\022R\355\211C\251\250j\006\242\273\211\213pM\303MuqC8\037\024\326\035c\262\316\221\204\316\013_+a\313\\v\004u\2736S\244\013\256\253\0015\321#\256\233sh\322\366\324ujg\2501\3065\230A\235\022\356\325Xs\344\032Nx\264\274SR\236(\022\210\300\220\277F\261kE\026\312\235 \300 Hqd\206\263F\342\314\016\301\327\031\2328\344\025\233yq\232\267\2169\000\031\200\000\001\000\000\000\0030\201\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\000\000\000\014\302\000\000\000\000\000\000\000\000\000\000\031\204\000\000\000\000""\000;q\212\200\000\000\000\000\000\000\007\332[@\014\302\000\000\000\020\000\314\0003\000\000\000\000 f\020\000\000\000\000\000\014\314\302\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\266\206fa\000\200\000\031\204\000\000\0030\002\000\000\000\000\000f\000@\000\000\000\000\000\000\0030\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\306\244\316Y\337<;u\234\246F\312\256^\322\027T*C\202iqwW\016\022\0255R\216~\355\017\310\t8\r\321\316\364A2B\022^\237KKo\344\nj\225\234S\261r\225\005\2536\332\277\335;n\250\234\361u\017\2570M\316X\022\237\217\232\037\211\030\036\353\253\032\202@\265\271\347\322H\200\203\261\344\204\204\251\305*\226\315\047\331<\307\"\354\223\323\353B\034\371Qy^tA\014M#\370NH\242\3012:\353\305\327\233^z\266\271\021\276\376:\232\343\323\306\354\261\307uR\204\001\020i\257\036\333I\3369O\344\376\205\250\t\030F\320*2[\334\241\227\200\251\300\373\035\220q\274D\024\355\320\003\tO+\357\263\277B\354\237/`\266G#R\024\204\354\363\2132\334~\327\323\253\371G\237\006\207(\313\010e\206\337\023r\330\314\216\307\243=\366\242\357\264ZJ\003\320f`\005Vi\022\255\256\344q\024H_\2752-\263\026\\3\245\027\251q\343\354\177!\231\207\273\273\364+2\003\022J\017lHx\004\024\245\205\363\026,\364,}\223\217\205\332Mo\334\366\217$v\375S\327\212\321\252\335kU\031\025UD\025G\256\366\2014ja\346\311\206\001\3021\231<\272\354x|~.\257NZ\303\3521Q\225\306e\225\275\327\212yE\232\267wwp.\343\273\264z\022K\244\250\221\327\2203}\\\235a\352\227\277\261A\223\311N\333\351v\2651\246t\030yu\204\260\010F\372\211\0047\321 o\246\262\036(h\231\372$\233{7h:w\311\354I(\016\306\244\252\304d\032B\027\213\272\"\242\3528\325\215}\265\235}j.G\036\022\0214\200r\254\0021\003}\r\366\027\357\276\334E\223\000z\252\220\237\2252\340E\311\213\252\342\004\305\210\020\356\210\367\327\252\006\236`\363\035\"\356\316!\277z\236\256\003\226\016\230E\312\0044\220H\t\244)\023I: \030\320\026t\260\027 \221AIa\360x\201\317\273\356.Kl=\315u\327\271\360\010c\017\200\220\360\214\314\335\355\242\032\047""\\q\360\354\014\372\363\355\365\364z\207\200\275\213D\252g\016s338\224d\234R\316g\316\226\\$\311\031-\340q`2j5f\222\016\242\253gH\031E\361Uz\004\010\201\320!:<\236\2716\307\306\242\025\006\350C,\261D\236\361bpx\262D\010\235i\374o!3\371\236Mn{\262K(\305\047\020\364z|q\013\341\"\261\361\340\034\035\\\313\301\270\2002\252\020O\2039<\306\010\343\020$mH\324fF\240\013Y\026c\032\354\241A\034\207\262\326ba\227\241].b\232\n\232\025\223\030\\Rt\224t\020\010\211\240)\003A85\261g\203&.\342m\200Y\2527\364.\276\017P\314,i\262#\300\300\244e2Wg4\363V\254\321\306\346\271\337N\243\351\r\010B\266\022b\254\031!\322\307`\265\325\362\304\255\214K\301\217wl\326\024\332\302u\036V\213\314TG\343$Q\025\204\217d\361+,\026\021\317^\337\254j\316Q\324.\321\0139U)\032q\321\037D\245&\311\205\"p\047W\303}v\200\316\337#{\010h\005Q$P[\216\371\037g\315y\024\010\201>\336w\313=\324\347\266\351\365\2762\210\375\364\327\005\234\263\235P41\237\227\266\235\334n\233vM\267\010\270(\230\300BI\324/\361W\257\201\204\345\331\2619\203\007huX\262\017\014\262\356\327\211\226\335p\n{\036/\3236\204\207\035\311\270\304\353\230\262\007\215\270m\311\347\303\260\027.l\266[\013[\036/\r\255\200\340N\311l!\202\034\276\353\332G\265\274\213\274\273\312\t\274\006\360&\360\047H\335v3K\013\271\325\256}\333\2575\326I\214n\224\230\204wAb;\252\303u\306\014\235|\301\034l%\3240\260!,\027\321xV\013E\303\231\254\257\025\321x\202\214\\\203X\232Tx\234\016\274\3333\235y\316\253\327\000 \275t\010\035p\323\023j\242\310$%\246\363?\204\300\234\275rs\351-\352~\252Pq*2\241\024\221\021M\323\300P\"r\002\230\317\031)\224\316B\3538\226t\006|\350Z\005\274h4\000p\366\227\262pWYM\266H\322\32211\020\225\223Dn \247\231\374/\245\0234\030\342\356\251\0013u\021\r$B!\244\244\r$\350\272\304$N\215P@\031\024RD\221I\021Y\005E\221\024\221\221\223c\234\007gp\370!\240\343\017]\237\047\261\352\360\253\262\3038\347\003\030\207\007Y\210\246\236\006yML3Dq4\033\001-8\242\227M9\245J\"jo*3$\232\\/\003^\333\2447\367<\275r\342\356sC\357\034\213\n\r@EK\r\271\222\252\340\253""\245\315\324\007\226\262#\203\210o\257q\024\\\365\356\177/\247\206D\3003N/\355E\274v.\007\221\237\231\\G\003\210.\254\201@V\344!=\020\005\202\007\n\253\316Y\317\261Q\\\034\3545`2vvD\331vvM\2256We\312\320\333\3466\222\271\004\212\246a\322\021(\330M\023\3229\234cx\320s\305\253H\204q\210H\001\252!\007TyF\234\004\025\345\271\364\311\013t\261I$\351\274:\365\366\205\013\375\257\262\277kQ\370\230\316v\361\366\034j\303?en\271\033\241;\251P\tE\004\014\226\335\305\002>k\013\000\312\021;\224\0109\034;k\205T\254\257B\265\357\322\006\254\\\217\264\2106\2767\347\357?9\274\334 \316SH\027)\010\232\360\340\270Q(?\203^ZD\022\025\236\021\007\002\340\026\376\372SR\273\251\306s?\237\216bP,4\304\262\244\325\247h#\327\r\014\236\320\320\312\362@hB\006\000\320 e\2400I\217\0207\323Q\257\2377tJ\350\017\237Ztk\337\344\336m\20192\022\022Sm$!1\002Ri\tI!#\047\305\227Z\224\341\364\023\243\266k\302\234a\333\200\036u\267l\314\364q3\362p\340\254vl\262+h~)JrE\026*\213v7Y,\375\307\225kE\302Z\t\tb\245\224\222\022#\301_\014&\024\325}K\2419\200\222\025\222 \306r\005\204\334Ks\243B\371f\0248X\206\317|g;\016/^`E\322\321\372\330\354\306\355\260\"r\274\352\3039\332;hk\276\375\322\215\264\222EH\311\001f\3447\017\023\213\354\363\231;.\020\365\023:\354\211\271\013X\266Z4\2322\212\272-\235\217\047\343\371\203\345\337\237\352{>\377\034z<||yCb\224\347NhD\rTv\373]mc[m\305\265\r\022\300\364-e3\213<\352\272\3019V\250\235\256\n:\200\006\252\254SU\030\352\271\335\356\231FY\023\231\216l\030\234\346C>\017F{9\343\013kK\t\311\306\306\235\027FI^CzuJ\266\211\324=\204\2546\241\367M\346\371\264\256\346\274\206\223\371\303]\316&/\326K\033\311\302\033\324\306\n]\004\241\212\231\335\273\253\310T[\365M\230m\373a\203\236/\030\361\200c!\266U\275\034r\217S3y\303\201\317\345\"\213\237\211\237=(\246\234$V\335*1Bw\361\323,\243\324\200\2772\203\233\221\207\275\3030\314;\032\222\255Y\212j9i\263\324\013\352\263\047\2714\314\005p\265\002i\272q\t\311\206FF\034\330I\010eb\307\2563i?\023\"\313\021\026\353\311Z.\366\237\013J\374W:f\2013ES\365F|""\374\031\320\305\237a\200j\033\354{\246\013\373\3737\271uJ,_\353\234h\311\027\362{\354O\034!n\335w\333o\263\357c\314\256Z\313)\367\222Ux)\003\200\276D\344\252\020\224d\3643N\204\272P\272D :P\274:\272\256\327\3360S}\243\276\251\325\tE\020\030y\315\323\034w\255E\244-\r\315\205]\305\002)\270\214\r\300\337\034\231\244`\235\262\361;\304\260\357cR=J\323N:\004i\207\035\250HJ\232\326\221\312\231s\036\332(\262\"\213\025E\351\307;\026/\242\216|\307\006m:m\313\242\030\346\213\232\0079\222\227\047\047\340\376+qO\256I$\222Y\364V\254\363\3274\323I7\262\345:\265lQj\373)\036\223\343\257u\304.\023^\014\346)\234\350\237*\317\036|\010t\225\030\214\222\251\212\265r\n\0147:J\262\300\304\243~\np\014\025\037\030\014\304\204\363\317\224\030EV-D=\\\266\320A\030\261\026\n,\001\025\213\026\021\212\214Ff\224\264\014\221\005 31;g\254(\200:\214+9o0\360\325\022uU&I\200\216\013X,\277!2\005q\n\305q L[|\240}\237\356\275\227\354j_Q\354=\217\204\367\267\r\300-\005\272\223\277\024\276\212\266yH\253}@o\n\027\327u\023\006\014\002 _\302:\306Oh\316\335\267\305/\004\312\016\332b\230\335b\325\032\321\320\317n\373\200B\347\201\002n\252\252\253\356T\314\313\220\204\331l\315\227o\365\270\336ay\323\020\363\275t\022\001<\346\354\t\327h\0248:\322\234\3507Mgt8\345\001\353\261uL-.\202\010K\201Sp^\304;\324\273\254\245\001\237~\033\314\"\001\357\001\0000=\300\211\356\036\261\352\252\250>\222\224\026\265\030\250\261\254\367R\244\\\316\234\226\334\215\214\003\331\276\366pT\237\2160\205O\207\356o\217\244\367\014\003\031\360}\270IC\037\233\310w\005\030\276\271\277\017\266\375\267\047tPW\217\230\351\010_\324\204/\344\367)\277\315\313\316\313,[\357:\270\341|\215e*\336U\036\224;\227\234\2472\007\255\2409\334H\261\205_(E\270\356V\036\240\310\336\326FrM\345^\"\020x\367\235\025\256*m\007\025\014R\017\t\260\212\254>\273\214\230\3558\023\223\236\334\222O\242mlQY\024D}C\350%\350\r2IT\333\237\331\345\345^\300\337A\2301\345\02275W\010jbS`u\315\2205\266v\221\3225L\276m\264\325!\224Wa\277\374\234\243\r\027\026\242\351\331\232h\273i""\t\201z\304\230\365\230%o\323\365tr\021~.\006u\235.\315\236/S\337!N~\047\3022+\263cT\304\242+-\260\n\254\221L\230\263a\357\036\320\320%a\244\010\300\220\370\267\316\016\330\265r\332#\237\345\2758\"gk\007u 5Z\313\n\354\266Wg8q\222,\035\213\030T\334?\271\254\201\275\354!c\356=Kv\255({\343\355\365\000\047\305\202\255\323m\276\265\306C\344s\214}\300\234~O#dpG\320\312\212\244\374\025\\\356\035\2016R\2127\356\234c\177N;\017\177+\370C\037N6\3335\035\374b\322\326\362\356H\307\247j\034\2719\005\357\333\250\315\033*\251U\001Dh\252Z\313\264\253l7\214H\030hI\013\246\220H:P\270\312\305\321l\271\r $q\226\2526\273\217f\205\024\2714.\321\217)<\031\330\360F\362\tv\264u\"\212{\275g\302\213\204L\244i\351OK\234\010\211+\025\005%\253\017\204\216\266@\247n\225\030\245I.\321z\327(r \024r\323\237V\010l\216\2041\251[H\272\022\223=<\372e\304\2009\000\006H9\001\014r,{\326\017\261g\264\236\357\215\370}\342\365\263!D0EO@\235~\257m\310\353X][\334\353\013\333\203\342\037\rNXs\362J\253\r\345:!\373\313\333\242\370\234\241!\255\370\240^\230kkH\030\340\322\231\211.R,KV0\260\324\277\005\362\0018b>\264s!\262\266ko\"\363\352ak?Jo}\2725\r\345\233\242\200eL|~IF|\312me\"\241\023\010\020\"#\206\352v\303\010\3109\031\260+\312\307h\343\026\341\260\312\003y\313 \334\354\231\024\331\263\374\222\n[u\263\263v\027K\200>\347\310\372AtO\032\003\2709\035\340I\257\247\350\364\307#\270\222x\240f\047\254y\025P\204NEd\244^|\360\343f\274\3344y\354\251\033IX\025\362\372\244\353\364\271\357\323\325\016\223S\260\226LK\316`\200\010{i{u\206\002{@\022E$\204\210}\276||\334\357T\312xv\355<\334o\237!\277#\301\262\312\250\353x\245@\316\tf\047\303`%\200E\027\356\256\351\367B\017\32376\013\222S\272o\325q\204R\376j\007\2669\246\236\222Ko2\0271\331\330 \354\016\304-h\024q\307|5\360\324e\355\300W\243^\024\312z\305\325\206Z\256\261\207\206\264\301\r\264\002+\266\001\035\267C\261\324\234\311\221pK\207\243h\242\267\300.-y\334\274\361\361=\317o9\206[$\2079M0\274\354\303$5\014\202\326\301\014V\\\263k\337\030\204$a$A\221\206fI\201X\016+f\047""\r\033\202\257\250\034}\220\221\030\314\216\273+\252\364V\245^\021\371\330\332\321\323\006\343\221\226^b><\023\375\344BA\003\010\260lAB\2530\213#\001a\345C 20d>\311>\332\025\0255\312z\226\223\225!r\234\205\337\364rXl^\332\251\326\357P\253\251\\\024\365\236\237\354<\277)\215\246ane\374\340@2\305\371\206\177taX~!\016\035\214\204\001\237\233\253\232C\204\375\302\177s\354\331\177\366\004\003\347\374\301Y\302\030\234fa\227A\214\326\313?\375\272\336\224H}\207\347\237p\010O\377\000\262\002\022\"=\330}\352\037\355V\220/\322Y!\272B\364\264\021\237\271\377\324TC\376M\335\371|N\340#\374`\047j\204/\000\201\037\350E\367o\335b\374\373(@1\242\005X\240\037\301\355\331A\375\240\001\371m\333\235\312(\256\347(\212\210HB\361\020\356\302\327\245\022\010\201z\203\033\272\0022\344\266\032\375\335\276\017\364\377\341\362\244\342\354!\"\001\000]\330\226\377\203\2135\243I\374 \003\n\177\247\373\017\273a\365\303\317\316G\036\177\200%_\025\361B\230z\222t9\277\025 \020\024\277\362\304\316/\213~*\004%\304T\2201\240\216\030\237\301\357\374\034\177\r\276+\377\363\361\317Z\244\010\n\333\000\366\337\334L\210@\302\203/r\211\246W]\375\330\342\"\203\262\027k\237\353\367?\313\337\366\275\254.\367R\214=\266\251\3748\036\355\326\270\004\013\317v\233\254\331\200B\244\315\001\000\300 \035\265\321\341t\237\305\375\334J0 \036*\251\371\276\352-\022B\247\350\363\034>\233\330\337\233\344\372\221>o\327\343\375\374\251\375\003\310\301F\365\3546\3748\361\354d}0\240\004\301\006\367\047\365\177\2348\270\270N+\214 qU\234?\257\361\326@ ^`\241\374aR\035\334@@\266s\370\332\214\014\004@\243\213\307\344\344?\260\210\026)Iu""\301_\341\350S\371c\\\341.\242\374\001\002\256\360\376?\360\010\274~NO-\314o\327\340\213.\277T\213~\375\327_\377*=\037\302\201\345\336\244\020\217\047\207\217\264q\234?\307\316`\364\0269\000|\352\3111\310z\024-\246!\260\323\272\001\222\"g\025{\312ls\021\266-%\020\007[\366p\242\311/R\242\024}\337\247\313\350\243\317\006W\017 \372O\347\027\222\322\330i\312Z\256\001\002\377\205\013^\377b/\303X\000\201\221M\340(\317{\313\346<\377\032+\353\210H\204\204\204#$\220\221\221g\254_,j\260\356\3309\347\304\201\372\000F\255\360\200QvTU\302U\375\372\024\265)\337\342\362P\037q\013\024\047\317\355\000\201zv\324\261\346DO7\317\363\341\225vV\375\031\211\361\000\026\321\014\005q\377M50L \210\322\207\314n{\337\001_7\303I`\375\250\375\344_\002\2468\030b\002\007{\301\341G\342\374\204@\360xmVAr\320Fl\001\002\301d\210%\340\322\246\355\212\\]R\030\t\257\352\357W\204\004\010|QI\324\374\2026\016\375\217\274\001\220\345\341\374\230\320w\315\201\017\324$\276\201%\222\353\200\270\035\210\265\202=\377\233\375v\333\342\245\000\370\240\222!!$#!\t\t\t\026|\366\241\346\376t.\371\313`>\014\037\214\\\225-\245\305 \241\216`\020\004\017\313\261O\213\275\251 \277\352D\267\334@\360x\013\376<-\210|\326\264\360\204\257\313\362[\343\375W\212,B\026\247\362\037\017|\370\270!!j\360\374W?\223\023\370\t;\036\013\301@\303\302?\226\215\263\344R fj\201\216\317\323\336u\003\303\341\360\235\373\272\277e\037\222\373_\263\n\306\253\302\031\313\355\341\227E \230Q\230\217\303\340\360\257\332\n\374v{\255~O\006&L\236\006\302\037\246\010\027x\021r\002\305\221\201Z\n\374\021G\211O=\2165K\217\241<\342>\360\372m\364cP\210\340\276\202\004\277\023\275\262\273\335\364vIj\032\\\220\304!\221\247\274\250D\017\351\367\300C\222\310\372@@\271\027*\344\270\267\223\000wC\005\022\r\257\027\271\037Ma\253\352\230\300\027\002\030\0067c\037\252\t\315\001\003\205Q\ny#\343\000\222}\203H!\375_-\213\\\234\207\243\313p\202\220/\001\346\306R\212!\372\214t\0163\362\000\005\255\047\027\032\037\357`\251\344\245\025 \010\020\020\177\177\370W{\033Z^\265""\205\001\023\274X\311\017\357\241\013\361{\310\272\374\035\336\376\341?\257\275\363#o\177\372\320(!\223\000\003\315gj\311PT\177\255\342\304\364\037=\275\001\020\200\343\020\257\234\002\371\\Y\010\371\370\376\336+)./\003f#\330(_\236\357Z\203\"(^\364\2248\302\226\303f|\370\350\027 S\347b\036\204<^\300p\203\003\204\234(\311\376\204\357\035\331\002\277Y)o\240\177\035\356Q/\276\376\351\236vR\031\240~\035\007\273^\367u\026|\305\376\371=\360\230\301\303\316\047\367\020m\335\212\227\340d$\027#\351\023\323\220<\206Hp\361u\006O\237\317^V\373W\3255\3175\336u\363_E\307\363\325\344c.\306\262\3362Q\262\177\277\250\220\343\311|\300\023\220<\252\016\212\332\\\030\047\326.\262\227\304>o\202\355\233?\353`0\266\037\02249\n\205\312B\3653\r\025\370\177\350k\375\217\300\374\r6\205\375\344\261\370\302\342H\265/\000\200 R\005\047\230\027\321r,.E\364\016\000>\275\340g\n\034VV\254\327#\047\220\274\330o\020\nbF\200(\003\353\362\007 ^c\034\001\270qD\370\331Qk\345\360\245\202\027\\\266g\034\344\343\244.\036H\327\017\221\013!\177\035\307\276\037ZE\251\002\022M\203\343\006\037$\016$\017\362\240_\t\365\323\365\314\036@\242\367K\206\222\334\\tc)\026\346\354\204\013 a\270\306\205\370\332\020\377\331\276\047\217\305\343,\004\341jH~\302\315\210\241\002(\371=H7F\322\257y-q\310%\214\002b\272\315B\237U`-D\215n\034P?Y\240\047\207\210\270\047%\025 \311\002\3725z\2174\270..F\221\253\374d\274[\014\037\373\201\361\374\2452\252F\202$\006\0364?\025\255\n\n\n\350#y\341\373\350\300\366I\354\023\332@\260Q\031\370\000,$\371\024\263q|hb(|g\327\363^~\223\362\300\370\341\361R\003\202\370\217\233D\201D\221\021\000\210\030OB\204\221G\375\257\336\264\205\007""\260\370Q\366D\270\312\355\013\030\030\340\016\001\345\367\320}\217\330\177\213\367\375\254\t\363\206\026\265\005\222\274\001\222\236\3327\373\206\024\270\221\306\301z0\317\332\363\247\262\377h\007\263\370/k\301\346\333\360[&\207\024\037p.\273\372v8\231f@\n \031\342bd\025h{\236o\370\203\363\370m\017\241\367-\371p\260]\211\356\205\301\3641\017\030\335\260\2308H\2069\006\343\032\370\344\344\237\371\363\036?\037\032\005\217\037\r\025\376\250\017\276D\034X`?!\034\275\360\273\344\330g\234S\350\323\020\273\347\273\337S\365|\035\370\377\207\244\374\341\327\206\000}0=/\247\n\006\014%\316>=\270\336Dx\215o\317\346<\315\340\356\301\356\374\030\235\354\240\237;|\360\335\334\017\224C\371{\375\366\345;\347\304R=\327\025_B\227\321\303s\302y\206p\205 \371\010\034&\251eO/\035\364X\340\276\371\275\\!\372\215\037Q\304\\\001o!C\304r){\214\002\047\371\341\265\343\304\234N\214\3772C\303\341\375r\340xy\n\014\007\221F\352\274\2054\017\370\370\216\037\315\363Q\305\341\361x\370J\013\310\034dp\234`\027\213\310\022\300\022\t\342|o\315\364|\241\353\360\355F\370<8\010\r\204\361\361\\\205@\303$t\267~\2444\215\t\036$U\373\223\303|\035\324T\362\006\356\377\332\246I\211>w\375@3\203\240 1Y\021=|\362 F\007+w\304\247\234\273\336\000\371 \277b*{PI\024}qC\331\376\360\037\203\237\330G\200\331\r\337g\354\010}^\320\210\034|\337\322\2529\020\\\177Z/ D\034\270\n\343I\004\363\345(\372\205\363\013\336J\357\260?\3362\346-\316\177\250\271\375e\316#5N>\200\373C\370\177\344\277\230\310#\315x \367`^\311\372|\377\322w\376_\212\375\237\243\364\037\237\035\303\372\375\241\220\377\344\200\037\312\204K\022\024I\300J)\277\324\1771\362\376s\247\363\005\303\371\321\240\261\372\360\022\240\375:=\241>S\267\344\374\367\037-\340R7\330h\363\325l\225\033\344\224\374\207\254{\235\177\223\345\373\n^\027\t\010B\005\202\030*\\\205Z\237\236\177U\367\237!\361\376o\256\036\361d[\222\313g\326\264\\PZ\257\\\354~\263\255\017\221\260\007\306\026V\337\234\002\213\232\250\005\037\035\276/?\346\353!h}\332B\224J|\364--\006\373\036\037\313\216""\017|\374_\236G\354\331\002\200h\360\201ih\335G\017N\036\207\240%\037\241b6 \226\202\355\362\320;*\306E\016\271\000?\361\257\263Hz\221c \246aHT\207\330\371|\222@\251D\254\251A\237\237d\237DE\n\202\307\352UL\205\007\314\024K\325C\367\240\017\221@x\001S\366\010\047\254\004=\000\256\320#\352E4\220\023\240\024\372\005O\021\000:\302\257Q\021\346\004|\244\007\374\305O\272\250z\302\017\320\002x\024~\200\017\256\t\363(\236P\207\222\201\242\247Pt\004\351\211\367\201\345\343\001\003\315\346\346\277E\241j.@\225\022\002\023\340\t\372\200\232\206C`aw\"Y7\201\231\035\360k!\236%`~}\202\004\001\352\025\222\310\224\005\005v4\217\002dM\212\202\223\nf\314\342]L8c\016\"\"\300\270ihR\3550\320\2231h\231\211\231\220\322\314\263.\356P\251\001C\003\005\226T\211\230\224D\026TXf~9\347\223v\274\302\214\222\032\006\310\023<\236o\211\316\311\226\334\247\033\326\367\333\2167\361q\251\312u\272:n\232\315\201\325\370\342\357\335\002\000\374\375|\377\270z\247\325;Wy\361\370h\361\2764\247\047\006n\2670\\\373\375\027SY\263\235%k\371\262\233\273\025\303\311\372?\357\247\017\201\323\306\035\322O\031\\CS\0263o\316\374=\374\355\000]D\344`\360\331u\205\023\0230\3212\354\323e\220\301\000\203\001\277\021\254\366 \224\205\257\306\213\311KD\027dcp\366S@@8\374\035\215\006\006\210t\305$\014\234\246\033\263\022\th$\200\304\212\222H\334\002\006J@\020\301\027\326\303\027G\036\237\016\311c\345\353\270\372\215;v\271\304\354J\312\363\235\374\235""\216\232?\303\222\325\253\215n\263\341I\301ln\017\231\023-L\266\342\246\366\347\327\354\343\204S$\217\267{\2433\317\264\316\313\366\237\311\311|\002\203(\n\245\264\005D\245\245@m\"\225(\250\"\010\252\250\242\252\013\"\212\212\252\253\025R$\222m,\252x\341\201I\373p\353\341]\212C\267\332\243\023b\324@\274N\3229\006C\240b\343\213\211\213\21111!\216\024\245\243\0474\032\205\243b\362\340\223\247\030\030\252\342k\326\26545\252\217V\263.aP\3238P\024\004\223\216\210\030Si\217f\345\352\315\017*\266ge\r0\310O\344\0339\206\251\2522\003\025v\n\326Qi\227e\205\262\262\254\254\270V\263\301Ze\342O\230\201k{\177%\257k\020\245F\224\324\302\331\223/\213\2541\211\235\346[\007\217\220\262\370\246\001\235=>\341s\241\270\271\271\301\004\237\265\2012`\030_\250\000\200\013\302\365\361\363\371c\224\200\201\000\021X6\276D!(\021\002ev\017\"E\352\004\310\221\"\202#M\226C\242\001\"\302^{\313\334\212AUz\265\376zo\216\002\302\220\244\213\334\302X\005\256\334\356\323|\201\000\316\017\272\004\0031CI\264\235\"*\021HT\234\240i\306E\266\327\224\273\273q\205\031Q\325\013\326d\250r\230\302\261H!\310]s\302\\\343\326\207\324\016\347\311\2040R\030d\302dYj2\314\240\245\230f\r,\310\225%\033\215\305\265l\266\210\215\022\331\036\374p\3709F\313\223\234\021f\\\3776\236\202P\262\237\324\000\"\000\221yw\020B\265\305\312S\n\210\254\"\300\254\235\2316\343\"\333jr\233\023\023lD\304]!\253xVJ\220=P \034\347nx\347N\372:\346\201\000\340\010\007\354\346pq\324\010\006s\323oY\232M2\020\306O\332I\251\245\013\216&\222\233\351>\320\\\006\220d\047$\301}y\230(\243\021\245\224\265\264\304\2610\243(Qkc\024\3140\313e\032\324Q+XV\275\277k\324\347\247\326\001\003m\246\200\251\347*\033\0204\003k\265\026\3006\002\315\225\013\010\330[\026A,!d\265\200\033\"Yl\331\004\260\205\220\240\022\221(lXT\262\205\202\305\205l)a\263eR\3006\033YT\262\215\204\241B\224(J\025(ZR\305\224\033\002XlX\004\262\205""\200\303 C\0002\026I\n\001@\314\222\006\022`f\000\026F\303k\000\026D\260R\241J\024\226,\243e\013-\254\210Y\002\300P\241J\024\005\233*\330B\300Z\310%\204,4\200P%%\"\024-\005 \024\2554\200R\2246,\010Y\033\024\253@\323b\312\005\205\260\320\255\003IH4\241M\"\024\001AH\005 P\241%\010YHB\220(P\201B\026\025V\220*\224i\022\202\204i\032)V\205\240\353X\020\262\026\r\273 \226\000\260\322\201@\024\355\226\025\262\226{\266\025\262\226\014E\201l\255\271c`\002\310X\367\002\3106\006\306\211e[(X\336B\3126V\317\201\033\n\330\033\006\370\266\001\260\266M\365l#a,=\345K\000\330l\370\020l#dlw\300,\210YM\260\002\221h\033\274\002%\220,%\236\004[\000\330K\036\004[\nYK\006P\031\331\262\373^\377\273\275a\277{4\033h\303\337\002\022\302\226\020\246\360\310\030\215a\270\333\267_\261\376\236N\361o\341\245\371\337\371\331]`\241\206ffl\215\221\244\217\376\017?\354\337\245\277\215\277S\177\267\355\223\365C\3577\352l\277\027Z\232\315\236?/<\236[d\246]87\365\326\211\2530\337\370\227\203{\331K\351\243\300\253\\\242\241k]\256\313]w:\355\006\236\034\357\243F\267\326\307v\032\357\273\350\221\320\377\370\273\222)\302\204\207\002\272\324\350"; + PyObject *data = __Pyx_DecompressString(cstring, 23889, 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 (25543 bytes) */ -static const char cstring[] = "x\332\335}\313C[\267\362\360\r8\367\246\r\351\rm\222\246\317\013m\323\2046IC\232\246\357\207\001\003n\3006\2661\344U\352\200\0017`\203m \244\351\355]f\351\245\227^z\351%K/Y\236%K\376\204\376\t\337\2144\222F\347\034\023\223\330)\277\257\r\2264\322\031\215F\322h$\215\244W_\355\203\377\222\313\331b\037\374K\367\255m\227\226\363\271\354|\337V!\275\266\226)\364\245\013\371\215\334B_28\021\036\272\010)\036\024K\205\364|\251/\233+e\n\213\351\371\314\325\2760\204\212\002\017\002s\013\231\205\276R\276\257\230]][\311.n\367m\024\263\271%\210Z\310nf\0276\322+\022W\337\342Fn\276\224\315\347\212}\017\266\373\326\ny\210\304ti\201h#\227]\314\002\036\235K\337b\276\320W\314\224J\220\346\263\371|\256T\310\257\254H\274k\033\245\276\205t)}Y\305k\324\002\325Z\272\220^\315\000\032 \036\nR\310\224\n\331\314&&+d\212\033+\245\"\024@\343\350\003\324\305l\261T\354\313/\0027~\375u!;_\372\365W\010\t\\\277\376\232\333X]\333\006@\272PHo\027\373.\001U\230l\rP\247\213WG\000\305(f\207\237\024\020\236_I\027,\370\300\345\276|.#\260\t\034\242`\231\364\3742\346\230_\313\344.\367-g\227\226/\367\255\344\267.\367\315\257\344\213\031A\367f~ec\025\230-\252j>\235\353{\220\301\362\366meK\313\002[iY\000\346\004C\346$}\227\006\372\240\350\313\371\205\253}3\313Y\310\343af\033\270*\"/\025\007\300\223\201\352AHQ2\262\330\267\265\234\221|\233OK\006#^\305Pl#\212\371\360\225\254YL 3\315A\t\213X\227\320pJ\333W_5mk~%],\366-eJ\230O\266\224M\257d\037\003\002$\036\370g7\210>D#\312\234_\3030\320\261\rAj`\246p}\371\007\277e\346K\242\375\311\366\003\231\013j\201\272\374\026\222\266V\310\256\246\013\333\254\255\001\267\005\"\325T\250\324\376-\343\033Y\202+\360\037\317\371\263d\360\212\302xE7/Dy%\237[\341\271\341\227W$\016o\335\360\300\000K\244>\207\250\245\342\245\273<\331\345\373}wE\206\"n\016\250\316\027\346\036na\340\376\200$v$?\017\355$WJ\013Vb\343j\362\201iD\231\234\354\202\320\331\250>\005\246Q]\351\271b)\235\203>\210\310\n\371%@\267\n\350\347E\305lf\323\324\002\026\363\227\255v\000\231\271; 5\215l\246x\325\260\366\n\261""\373\nT\300F!\307;\260\315A\314&\277Q\022\025\246\032\231\220S(\270d;\207\346\213\315<\223+n\000RU\217\242\235\247W\266\260\321lB\323[ \204\205\215\234\315\337\373\003}\037\212\206_\364T\227j\"@!F\256,^%R\010\227\342V\230\230u\210\212\263\362\264j\377\340L\365\177\027@\020\365]\312\262\320\"\200\017\203\350\207\256\260*p\026W\363\371\3222\224,82\033W\031m`\265=X\311\260\257\2628\nl\345\276\005\017\211\224\"\265\364\034\364v\370\370j_\002\004\360E\360]\024}\004\370u5\010\351\346e\337\013\t\256^J\006\347\202\023\023\321\341\271P<>0\224^\350\213\n\261%\"\206\202#s\321\241\237C\303I\021\023\323\262DE\306\202\361\340\344\300\320\306\312\312gC\031\250\207X\272\004\321\271\276K\030\312\026\227\373\276\353\273v\271/\222\331\200Ay\245\357{\014`b\214\371\241\357\332\300p:\207\265\263\232}\324\047G\"\301[9X\215\244\213\313\300\354\211l.3\222/\225\264w\003\271\020z\264\006\243T\016\005u\337d^\310\304\340f\006\230\235i\036\243\345E\004\262\034\025Z\003\026ct:2<\027\211&\347F\243\323\221\221\001\235\n\031\237\356\003m\"\223^\025Xba;.\347\256\2241lH.\354c\361\350t\214\241\037\207\322\273\350\222\243;~\006\225\003c\275\031~\020A8\022\233N\n\004PK\020\n\047\3030\032\335\t\r\210\317\212\337@\177\336X\\\314\316g\241\314}\343\262\231\323\207\211\351\321\321\360p8\024I\316\215\207\023\311h\3746|\204\325\003\2541\225\037\216$C\361Hp\002\353?\032\207\024B\002\365\215C%@\311d\212\024d927\036\214\214L\204t\212\t\310\254/\271\275f\047\232\200\234""\346\222\267c&\235i5\232\177\374\003\321\204D-$\303\321\210\317W\343\371\225\205L\301\347\233\361\350\304H(\336\374\013\017m\3743\233F3JBxCjs\267\322\033\213\253P\313\301\2054\214\363\233\031W\265Md\037\024p\354\306\212sW\032\250\013\242\312XuM\206\022\301f\250&G\303\240\272\272\273\370V\032\007\210R\266 \364LPB\256@\226}\303W#y\327\347}\227@\265\200\026_\332\036\210@\333G\202\022\033kk\371B\211\310AR\022\323\261X4\236\014\215\014`|&\227\337XZVb\021\325aT\355t{o\336\200h\\\214g\346\363\2309\220\373\r\010f\320\266@b\254\346a\030{\240zq\t\360\246\227\322\331\334U\226!\014\3420N\303\320!t\200\3427}zP\200D\031)\306\207\205\212/e\356J\366\001\344R\312\300@\016\224\201\256\233\021\262>\327\027\013\305\256\334\370\352\006\r@(\260`\000\332x \364\270\214\030\\\036ldW@_\350+A+@\035z\261o;\277!\206\017,\356\032\352{\354\003\020\2349\241\257\242\004\275(\304\222\220\222s\3609\260\372b\337\002\324\303\274\250;\370z4\275R\314\\\215n\200B\265x%\216cD_\010\010\t\303\334\342\221\340]\024\372ltt.\036\214\214\205\346B\221\021`\346Hhv\300\372\"QJ\027J\315\276I$\203\361\244\371\352 \t\001\3375\021\021\364!)R86B\263\006E\010U\334\214\035\231\313,\245\261t6t-_\314z\241\2173\205\277\272\232\3171\000N\010YP\266\026\001P\342\2101\245\350\026\365\027\203\303\301\341\341!P\\\023\312\235K\010\024\256\340U\324\177p\336;\267\230]Y\t\016G\023\370\247\323F\233\245\323)\374\343G\202#\370O\245\322>w\262hbX\374\350\204\306\357N\032\207\177:Y\274I\242Y\234;\342\237N9\3334\251I\322$\205N\340\037?1\021\214\006\243*Q\324?Q,\n\377T\232X\223D\361h4\"~\220\035\344\252o\354\240\317\207<\241\177\252D8\202\177*\241\361\272\322%\203\021\374S\351\214\327\235.\016\377t\252&\374M\215\215\204R\362W%\345\001O\352X<<\034R\256\371\202\007]\337\254\254\014\013\271\235\240\361`H\264\353!\336\272\207\2327\365\241P2\210\177*\245\361\272\322Ec\360O\245\322>W\242\374\302\366H\376\267,\272\023 \245\321M,\203lAO*S\020\300\341\3410\374\243\357\215\317\3064<2q}8\036\235Ih\217\372\300\025\366|\366\371\320Dp\370\226\372\226\205\014\002/\320\213\005f?\341\221\220\361\261\257-\200\367""\313\211p$\224H\306\303\267Bv\210a\360\000\275X@\253W\004\220\227}oC\274\037\343\354\001\232w\002\322\215\273\303\014\215\017\330\213kf<\234\014%`\316\034\016\305\023\036\000\303\346\007\367\240\013bK\214FB#C\301\241\333\356\260A\346\007\366\342\032I\005#\303\241\241\211(T\246\035d\230\274P\017\242\241\320D\022W\005\230\327 pA\274\037\307C\301[\301\231\340m\356g\237\273@\236\357\207\047\242P\007c\223\301\370\364P\364\316\264\027bp\371Gx1F\241\300\301\td]b\006\304\263\017\210\341\364\217\361A:\215\013E\301d2(\270m\2059:/\330\203k$\030\277\005e\231\036\031\216\246Bq\017\300`\363\205{\321E\177\016\223\203-\232y\031&\033\342\213\303N\3354e<8\026\215\214N\334V\331\3620C\341\003\366\340\nE\306\246\047F\241J\271\337\340p\203\274\337\247B\021\210f%wA\030.\337\210f\030ml\276\230\016\3022\026\214\241|\302?!\025|@\006_\223\030/\322x0\005R\023\245\202\344\274\r`\010\375\340\036t\343\301\311I\321\370\244\307|n\205}>\213\214\211>\030\261\002\374s\027\314\007E<8\0316\236x4\221\260C\034\233\033\330\004\235\373\223\246\251\303c\3433\300\037\346e\237\332\020\237\217o\335\n\336\n\031\337dt\304\npT.X3d\236O\232\246\217N\002_c\341\261P4\342\n2\034^\250\007\0214\264H2<\034\234\370\\i\t.\210A\347\037\341\305\030\211\204\204T\224\036\366=\017\373|\006R-\031\032\321M\321\006p4>p\017\272[\341\341[R\226\220o\3506\212\020\241\002\270 \006\265\177D3\334\236\357\232\245\207qw$\024\037\212&\223\321IW\320\340\360\201z\021E#c\023\241\261\261\320\010\365z\033\300\220\371\301\375\321\201\366\305\274.\024\006\342\371\230\215\321\336\301\371Y\243\362d09<\016\034\233\210\316\330!\216\302\r\364\303B\232\n\371\254\257\017\322S&\243q\327X\341\2020L\276\021\3150\332\330|1\035\204%\252\372N\324\325w\242\007\366\235\030h\231\303\262\265+\257\371\324\005\361|\014\223\251[\211\361\340\214\224\342,dPx\201>X\022\241QP\231>\237\014\001\347G\022> \216\3177\306\2034\021\302]\252dX\266\304\204\027bP\372Gx1\216G\243ISO<\310py\241~\210\342I\352<\332o\241\260@\336\357c \016!\217d4f\207\030\016\017\320\213%\t\\\014\215""\304@\305\014\305#\036\000\303\345\007\367A\207\025\r\263\215\231\360\360\270;\314\221y\301\036\\\311\340\255\351xX{\314\327V\330\347\263\304\364\2550\250A\334\317?\266A\336\357\307\343\323\211\244\354\013\332\317\276w\201\274\337\307\225D \037\3736~\240\004\230\216\204\247\246C\237\307\303R\215\347A\203\303\007\352E$T@(\243\236\364\273 \014\235o\204\007\343,\245b\235\323\r28\233\304\270\220\206\302\023\370\247>3^W\272\311Q\370\247Ri\237;Q\024\376M\343\237N\031\235n\226\324$\361O\021\215\305p\016,\035\225\330\n\271?\210\307C\023\362W\047g\001w\352\004\374\033\307?\23581\336,\251I\342\237bz21=)\177UR\036p\245N\205\341\237J\227j\322\205\370\362\027n\372\217\200\244\235\236H\216\204&\203\370G\0371\257\375\375H8\021\034\002I1\022N\301?\225:\354\277D7\002\312\347xX\254N\010W%\267\203\256ob\321\021\275\3469\322d\365sdV/\3006Y\211\325V\232#\371Rh4\014\377(\231\361\331\037@\201M\231\233\225>\024\017\305a\270\324\270\232\310)\335w\233t\342\320l\014\376\2514\263\376\302*\264\276\221^\031\235\210F\343\342\207\322p\277\235~\024Z\336\250Y\365\035m\266\000<\032\017\016\203\264\047G\245\266B\256\017\322\005\265\347\251\334\253ss\270\04757\347\006,\372$\\\316\314?\234\313\257)\023<\261\225\303\342\2272\245\003bq\203\326\312F&\023\333\252sE\261\271$M\024Y\022\264\332Zaa\334\253\264p\024Kvx#\227E\2039\006\323\226{\213+\351%\203{\311eH\350\023a\023\203pc3\251\301h`\251\003+\371\374\303\007\351\371\207\032 \355\002]Y\023\320FO\026\204:\\\3300\234\367\030 Z1\276\245(6)E\321*\305xp\\\365\216q\377n2>\031\034\327=h\274I_\032O\316\215\014\307\240\013EG\230W}\344\201\370}<\036L\204\214\317\372\224\001<_bd4\256=\346;+\354\371,\001\352\0329\346\223D3\035\016\342\222\361P\004\347\243!\3567\237\272A\376\337OFGB\334\357\372\236\201\\\337g\227\226\047\362[\302\312\r\255|\303\223\341\260^\351\0107Y\363\340\006rd\037w+8\031\304?J\317\274\366\247\267`LUi\374\005\317\255\221\237\341\237J\243}v\"\344G\020F\3271\355\231\013\342\\\325\025\244o\375\241M0J\353\275\341P,\351\003\362 t\3074C\232\230\210\306B""\256\240\007\031\2076E\344\376\306/udB\215\232\023\376\303\347Dtl\360\232\370Q\351\230\337\2254\233\313LBu\016\217\340_h6I\016%\266C\366\247\0307\032\236%\207}`B\336\017X\262&i\344\377:]\223\2266\031\214\337\n%G\303\312\325\351\255\240\373\233D\",~tj\343w\047M\305\360O\047L\305\232\244\203\362\317\n\2533\345\352O\254\240\3473\223\254I\n\235\240Y<*n\344\310\0214[\312\254\316\315\031\220\0346\047aF\207{\241\312Ux\355\240\013;0\326\360\264\031;\303\240\231A\017Q\256Jn\007\275\337\010b\30261\341\203\210\tG\340\237\3441\271\372\263\310\001<\206\317\202\263\362W}\354\256#\017\304\017\205\225\270Y\272\351\304\334HX\271\346\013\036\364\375fR\271\3667\223\315\2761\311\374SD\047\047\365\322\340d\223E\302IP\365\361O%3^;]$\230\214G\314>}\244\331\226}$\032\tER\341\210\236mD\232\314;\"\231t!:\224\202\177\024m|v\302\250\264\233\031\311\316\243\361\242\260\376\214\241 \216$\303\023!\343\243o=\000\033\031E\307\203\221[\314k\177\313 \256\217\047D\025\222\243>\232h^\2572n\222\034\353\003\377\332\200IgL\317pbM\346:\261T8\246\231\032k\302\336X*\n\377t\242f\230\222\360O\047\362\257\371)\261z#\177)\201\025\260S\307A\352j1\025o\"\260\342\321a\370\027\303?\225\322x\275I\361o\360\3325r\314\027,\344\375\210%k\226\306$\361O\221\010\307\365\220\020o28\304S\341\270\256\202x\252Y\242\350\004\376\351dQ\377\211\225h\334(\260\343\231\2640\007I\004\343\360\017\006]\371K\037Y\001\033CB/7%\232,<\241\311B82\216\177*\245\361z\222\232$\376)`\324\324u\234hR\333\211\311pB\253\227\211&\212fb*\236\304?\225\314x]\351\222##\241\224\374Uiy\300\235::<.~F\345\257\376\204\005|>\201\332V.\377\242Y#\020\221<\241\177\252\351!\370\247\222i\237;\021[\316i\266\260\223\230\006Q%\264}\343\323\237\270\000\256/\305\0049\261\234^\310o\2419\221\364\t+#\351UvF&\304\"\213\224\207D\0143\371\374\332\366\334\234\016.d2k.\020\010\356\r\230\227\317%?O~NP\355\261)K\006#\360o\034\377T\302`\223vil\312\232Y\227\341\261\254a\361#\355\024\231wnx%\237\313p@\024\276t\207\203\271\205Q\205\207\300\261L\346!\017O\257-\244K\026\"a\t-\000\321""\0049,\267(\313)\352\315%\312r\210Z\330\243\0343Ch\320y\220\031T\034\221A3\"~\350\327\240\004\277\302I^\206\024 \n+x\rZ\010\030\274\321\304\260r\031Z\014i\304*\300Q#L#\307\000C\217A\223A\\\3762\344q\203:\356A\0347h\343\034i\234\241\234\225\277qr\030\352Y\206{\326\213|\226a\237\265\320\317Z\3709F\206\320\213\217\241\263\2601d\014\227A\345\301d\020q<\006MT\374\030\\Q\215+\352\306\025\325\270\242\014W\324\340\212E\345\257\301\0263\350b\036|1\2030\3061\306\030J\264BU.\265(e\301\2523Q\000\225\023\017\263\354\024X\345\251\302&c\005\261r\267\363\2612\361\313\301B\357\302m\020\303(J\216A\217\001\205]\371\031r\004)\334\3507\2501\2441\013\341)\034\203\031\003\n\263\3623\314\010R\230\321o0c\310`\216\313_\206\327t\212\244\247O$M\227H\362\036\221d\035BX\360j\217A,\203\n\267\t1\364\022\250r\220!\223\211\014\263|\304<\222yy^\022`r3a+?\t69\3120\317SBT\256Cj\274\031\262G\233!k\254\031\362\033i\206\254qf\3105\312\014\331c\014\232\032\223c\362\300\200\312A\371\031~\004)\354\3507\2701\2441Gc\362\327\340\005\277BK^\206\025 \n)x\rN\010(\224\303\303a\371\253Q\242\237P*\257A\211\020B\211^\215\022\003\032\245\262d\346~\203^CT&\026\200e\245\341*C\r0\331j\020\313\234YA{\000\234\014\0166\264\270\241\026A<\322P\305\241\2344\016\347\364I;k+`\321E F\023\203\330\364P\004\243\205 \026\035\004\3434\030Km\017\300\242\205\201\031=.\250M\023\213dt1\250E\033\203s\372\310\022\334\016Y\224)\030#\213\203l\232T\014#H\201,j\024\220\223\302\255\311}@\026QV\004\243\314\003\267\311\263\242\031\215\026\334\"\324\212\341\324Z\326\352~0\213^;\206\021\354\215\260)\266\343\031\311v\204E\263\035\305\210\266\254\342}@\234d;\302P\354\205[\004\333\321\206^\033\316\311\265c8\265\314\362\336\013\261h\345pF\252\033lS\312c\031\241\034l\321\311#\030\231\312\276\337\016q\3624\314\220f\201,\262t\214!I\20389\032\310IQg\005\\A\213\030\rd\324X0\233\034\035\305\350\3210\213 \re\024\271N\034\370\0029u\356(C\243_\214E\251;\201\241\327\035\303\251v\307q\332]\047\033\374\241\026\365\3568F\276_\224M\277;\005+\200;\312*\201;\322*\002;M""\341\003\262\211\347\021\234r7\334E6\217\3464s\270M0\217a\324\332\2475\374`\234^W\214!\330\047\302\242\330\025oHvEp\232]Q\234\350\350\317a\343\023\327.X!\213d\005c\304r\220M\246\212a\004*\220E\232\002\272\210rg\354\312\324?CWf\236\214\254L\370\t\025\037\220E\200\025\301(\361\300m\222\254hF\233\005\267\210\264b\030\265\372,\214+\310\2514@C\241\r\263\2503Q\2062\003\343T\031(\247\310>Q\343\013\264\250sE1\032}blJ]\t\030\275\256\030\213jW\234\227v\017\335Mh\366\247\367@Z\375\351lF\243\233>\367\231 \177(\247\324\023g\310\365\215\262h\366\2440\204{\2428\365\236H^\004\353\024\222\037\314\"\337\216a\304{#l\322\355xF\270\035a\221mG1\242\345\001\023\356\347D\022\304\020\307\000\026Q\0047\304\020\200\023A +sur\312\035\266\211\320PN\210\005t\021\243\3438A\032h\023\245\301\026ax\242\212\373\305\201,\017\300&\323\2009\2356\324E\250\211\344\224\032\250M\252\201{h\365R\342!\242Y\376\236\254}r\2652\2443cv\310\"@\301\030\t\034d\023\241b\030\031\nd\021\242\200\026)\342\000\231\025\230\214\216\270\3036m\032\312\251\263\200.\372t\034\247P\003m\0325\330K\245\017\025^\022\232\346\357\315\334/g+[v2\316\013\261\250\341pF\222\033l\323\305c\031q\034lQ\310#\030\231\256\023w\276@N\254;\312\320\353\027c\221\354N`\250v\307p\302\335q\234vqb\211\373-J%\204\021h\0006]\022\316\310\221\000\213\n\t\2622\347g\004\375`61V\014\047\312\023\341\"\316\212\347DZ\0216\261V\024#\232N\021Z\001u\024\321\027\310\313\340\2162\205\360\213\261J\341N`\212\341\216\341\345p\307y\013\342C\236\227\254\246\344x\311\360\313\236g\313OPz!\234\032\013nH\362\200-\272\254XC\234\005\346\024Z\021\234L\353l\246\037\314\"\325\216a\304z#lr\355xF\260\035a\221lG\271\211\016GBv\310C(\302\\$*\220\2278\214q\221\205 \017A\010d\244\330\353/~\013/>+.\315\227Z|\326X|\027W\374VU\330\031U\017\300&\310\2009M6\324E\226\211\344\224\031\250M\234\201\333\364\231\325\331\003\340\004q\260\241\311\r\265\310\342\221\2062\016\345\304q\270E\237}\336\331\037jS\352\212\343\344\372D\271hv\245\340\204\273\242l\352]\221\254\010\256\363\325\276@^\000w\224\241\337/\306\"\337\235\300P\357\216\341\304\273\3438\355\354<\267\027bQ\315\341\214d7\330\246\227\3072b9\330\242\224G\330d\3123\343\256\240\213@\002Z\3241\230\2334\212\262\350\"\230\213(\202r\212\314\tt\017\300\242\212\201\031].\250M\031\213d\2641\250E\035\203s\372\254S\355~0\213J;\206\021\352\215\260i\265\343\031\271v\204E\261\035e\021\315N\317\373\200l\222y\004\247\330\rw\021\314\2439\275\034n\223\313c\030\265\362\264>\367s\372\010b\010c\000\213\"\202\033R\010\300i \220\2259\235\366w\005m\022\024\220S\301a.BT\024\247E\301lr\024\224S\244\356\017p\005-\2124\220Qd\301l\212t\024\243H\303,\2124\224S\024gz\225\272\242\200S\023w\353Q\034bS\022w\353M\nbQ\021\367\350I\374V\003/\204Sc\301\rI\036\260E\227\025k\210\263\300\234B+\202\223i\337\226\340\013\264\210uE1z}bl\222]\t\030\325\256\030\213pW\034\243\335}+\203?\224S\357\2113\344\373FY\364{R\230\002x\242x\t<\221\272\010\241\360\0049\206H\014(\252\224\237\221\201 \225/\372MF\030\322\230\047G\345\257\301\013~\205\226\274\014+@\024R\360\032\234\0200(\243\362w\232\034\206:j\246\225\312\317\221G\315D\022\375\014}t\232\343\347\030\031B/>\206\316\302f\220\311\273-\214\317\240\246\260B\317\202,\013\202\252l(h\262\"\200\311\016\357\306\320\036\226\231\010\352\274t\210g%\200:\047\021b\031\211\260\311\047!\177\307\311a9%\314X\250\374<\227\204\031\363\320\317rH\214s\374\034#C\350\305\307\320Y\330\0142q\314C{\014b\031T\270M\210\241\227@\225\203\014\231LdX\347\223\n\313_\223C\312\014\277)\317\300\2332Cn\212\017\266)3\314\342M \344h\244\"@X\265\337\240\025 \302+\374\032\261\010i\314\341\224\3745x\303\332 Xy\031\326\2606\005F\257\301\0316F\300\352f\021\3465\310\025@\345\300\303,\033\005Vy\251\260\311PAt\256\302&~\204\331\304\217""\030\233\370\021\217M\374\210\261\211\037\3416\361#\314&^\234R`G\t\314I\002\317A\002s\216\200\037#`\247\010B\243a\371\253\261\241\237\320)\257\301\207\020B\210^\215\021\003\032\245h\023\274I\260\026\341m\020\254=X\315\201\267\006\241\031\204\204*\031bJd\310\250\217!\217\342\0302*c\210+\213!\246&2\375\302\250\024\036-\302(\016\\W`\352Ah6&\177\r\266Y\255R*/\3037\253\025H\364\032\214\263F]\024W\271(W\243\225!Bl\002\006\265\204\021r\031\320\350ePg \017S\214\362\203\024\243\354\020\305\250\367\000\305(;<1j\035\234\030\345\207&\350\272\030\3433\370)\254\262`A\226\013AUF\0244y\021@g\207\317N\215N\004qJ,\356hI\342\275\365\342y.\016\030-d0\365X\246\204 \371(\223\t\207s\213y\031\022\257A\351\027Q\014|\202.b\221\241\350Z\323\204\362U\025O\004>ieQf D\332xP\374hn\215\353N3\356\3563\343\272\313\214\263\0363n:\314\270\350\203\343\254\017\216\233>8\356\351\203\343\246\017\216\363>8\316\372 \273u\305\016\231,\030Le\345\002\261,Y\214\312\232\201\014\t\014h\223\202\267\270X\001\027!\002d\321\241!n2D\204E\205\200\270\210\0200F\203\274\021\206\3739\005\0041\0040\200\225?\301M\366\004\340\271\023\210e\236\220k=\352\226\031\226q\202\255\360\360\240\225i\202\255\353\250 \3170\301Ws\370}4\256 \317\330\000M\3566\314\"\301D\031:\014\214\023c\240n\212\360\206\033W\320C\221\000\272(\3220/E\"\312E\221\200y(\022PEQX\330\265\204\231\305H\330\330\212\204=V\"ac\037\022\346\226!af\023\"_\254S\242\315\274V\005\001\274i\207\034\235\237\010P\206\332or\024 \312R\370u\236\"\2442\2755,~\014V=\"\334r\217\007\267\364hp\213\215\005\267\314Hpk\344g\371k\260\201_\241#/\303\007\020\205\020\274\006#\004\024J}\005\016\367\313\013~\274\020\235\255\033N$\370\201\r9\356X\"\315\r\326d\272#<$\373\220\243/\022\362\207\036\364\205\267\020v\224_AL\nOaL\224O\201L\244\267P\0362\232e\356\311R\\|\344\205\370\024Z\302=9\031\260_~2\326?W\277B\312\010o\001}\222\352D\021\361c(\326\023\210\t\367\324aBO\032&\330ta\302L\024\304]L\3125\030EH!\325\001\206W\300\024j\0210\330EPe $\006^\260DNh6i|:C\025\246,y\320d\252\240\224\255\n\352""\214\025\300d-n\1772>+;\014\263\354T\320\316\016\241,;\014Z\331!\200gg\345\300\321\373\340\346\210m\254\014%\261\217\t\334I&p\047\275\002w\222\t\334IK\340Nr\201\253\256\246b^\226\003\001t.,\314s\"\260\316\215\302,G\202\230\\\023\211\260rY~\030\322\231\251\000\317\ta:\033\014\260<0h2H\305\310a\350S1\203=\025\363 O\305\014\356T\214\243N\305\030f\331\220\344\005M\314\313\362!\200\316\213\205y~\004\326yR\230\345K\020\2267\317\205e\340\305\315\320Z\030\0312\206\313\240\362`2\2108\036\203\206n\354b^\203W\001\024v\036fy(\260\312I\205M~\n\242s\225-\2267V\326N\275M\224\265N\253a\3626I7\2041\257A\256\000*\007\036f\331(\260\312K\205M\206\n\302sU\354\013\273\331\027v\261/\354\317\276\260\213}a\017\373\302n\366\211\363\377\352\2422\346eyG\354F\314\303<\357\210\335\210U\230\345\035q5bqc\231\3660\n\274=\211\301\014\035\315\372\023\2131\324\370\364*\006\264ir\345kg\351\233\233\235\221;\017\216^\\\315\305\274C\314\3543\304\370>C\214\3553\304D\243\217\261F\0373\215>\346i\3641\323\350c\274\321\307X\243\217\245\242\362\227\2414T\246\310\256dK\333\022d\355Z\207s\245\314R\246\340\023\2037\016K\3604\275\002\037\023\217\300#ly\243\264\220\337\302\202$?\027?\272\250\340\245\"\222\317\024\r\000T$\360\351\242\200_\025A\336Y(\357|\025\216\301\0324\002T\373\031\346\240\021\240\302o\260\007\231\000\345\227!\262\273\020\275W!\262\233\020\255\213\020\371=\210Ii\340\222\344\026.If\342\222\364\332\270$\231\221K\322\262rIr3\027\234\257\214\205\264\307`\227A\205\337\204X\016\022\250\362\220!\223\213\014\233|\302\262\010\350\262\\\302\254\020:\300\363\010\263b\210\000\313!l\025D,\366\243\303\321\3172\354\263^\344\263\014\367\254\205\332,\344$\023\243\362\327\340Mh!\252\274""\014kB\213O\364\032\234\211Q\2062,\177\031\312\260A\031\366\240\014\033\224a\216\322H\305\344\355\230ZST^\203\\\001T\016<\314\262Q`\225\227\n\233\014\025D\345:=\221\224F=\322\243s\244 \345\307B&7\002R^\024\3229QX\345\223\022\232Z\212iP)\243A\245<\032T\312hP)\256A\245\230\006\225\022#d\212\r\217)36\246<\003c\312\214\212)>$\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;\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\343h\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\352\334\\\006\346\006\205\2719\017\370\021>\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~\004\177\370\210\320\\$\363\250\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}\035\320t\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\374C\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\3575\351\014B\235\347W6V3i\250\243\225L!\215]\237\373\261@\240\315-\271aE|5\207\003\335\211V\323\217|@\236\317\010\260\276\201\225\235^\003r\027\322\205%|\275U>\325\232.\316g\263\351\"v\253tq;7\237\315_\325-\255\230.\t\201\222.\025d\t\323\233K\322\363\340Af)\273\360\350A\266\364`\033\032\362uh\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\0372\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?\370-#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|\230\331\206\177\305\207[\310\215\225\314b\351A\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\375`!\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{\220I\027\326\220o\302\217]\025=\033++\n\270\000\177\213\351\325\264p\212\024\204\246\016\356rZ\364L\341\303F\"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\232\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\300w]\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\3720\2736\047\306\006Q\2674\302H?\245\300\272f\360\207\014.F\033\364\230h\212\304Ar\005\344\312\n\370\n%\311a\324:\361\047;\017\204.c\"\030;7\325\007\205\353b\250.\212\331pq[j9%h\304\017\256\242\222\003ni\031\242\026\260@\331\325L\242\004\215\005=\362{\343\0334\336\353\306\373y)?\047D\037\322)tt\322:7\304r\223\374\025#\236h\225\033\305\214V\224\005\361\262\004\244\036o\3121Y*N0B\344\360\01757\340\203\314\356\177\307\366\002\307\367_y\263\274\276w\342\344\323\033O\327\367z_\337;\375~%W\013""\356\365\274W\231r\336\377\254\266\276\327\363~%\215)\377\365\277\215\247\303\220\346\304\351\362\361\362\324^\317\251\275\323\347\234s\237\326\0061u_\365dmp\357\304\277!>p\3229\371n%X\231\222\037m\227\273\313\024\363\312\353\345\017\341\313\023\347\312\351\377_\375\373\002\020\350qz>\254~]\033\256=\252\003C^}z\341\351z\371\330\336\2117\313\217\253\275\310\026\344\332h\275\037\275\227k\301Z\252>\370\277c\373\001\254\010Q\033\247^\333\353y\333y\373j-\r\374\017\234-O9\347\256\324\2460\311\177*\353N\337\265\372\311\235o\033\017\235\251\370^\340\215\362\367\325\023\265c\265^\344\365\223\362\227\225\376\275\023Pk\316\265\237\032\257\355\002%\047\237\0166\371\356\207\352\371Zo\255\237}w\255~\314\031\034j\\ubS\352\303W\2608H\316\233\316\233@\264\0063*!\267\372\251\235\273\273\047\235D\222\210\005\302]\211\276\331\351\337\031\244\330\257w\200\007\373\037~\364\327\307\3778\336\363\364\333r\032\222\005N=M\226\317\225\327+\242\315l=\235/\367B\233q\376\335W=V}\243\032\334{\345\325\275\023\275\345\367*\351\312\243\352\343\372\231\372\024~1]\276Xy\275\362e\365\003H\0208S\206\237\343\222\326\362V%S\375\261\376A=\270w\342u\347\365\017\253\203\325qh\245\030\367V\345\\\245P=S\275]{\270sf\047\325\030l\204w\357;w\356:w\227\234\245egy\353\257\177\374\343\321\261\341.p\206\273~F\347\347\256\030:\261\256)t\246\272\342]\373\210\350<\222\n\345)g+\353\212-\037~\2733\370\327\245\216\227j\262\321\333j\271\346\235\371\005ga\315Y[\007\332\013\307\202X\204`\327\004:\023]\tt\022]\267\321\271\335u\007\235;]w\377/\025\017\312\226q2\353\316z\001h/\036\033\302\"\014uM\2423\331\225D\047i\312\005\316\335\256{\315\213\367\321\205\316\266H\347\303\317\353\327!\235\267loV\273\252\037U\263\265\337w>\332Yl\004\033\267wW\235\273\367\234{\320\036\263N\366\021\020\276}l\004\351\037\351\272\205\316-\323\026\301\211CE\332\205\372\255zL\027\352\273\235`g\353L\026\353~\243\277\325\202\275x\233<\332\345\373\315\371\355\241\363p\313\331\222\0257\216e\030W\005\243\022\375\212\316\257]it\322]\017\016*\237\363]\322IN""\377\365\311\313(\343\225\335\365VK\tm\023\373\235S\370\257\363\337?\241\024?uE\2610QUB*\332\022:K]\313\350,we\017(\350\367;S/\243\"\177i\014\266T\304\234s\017jq\305Yy\344<\332\006\342\037\037\013c\031\302J\254\220<\3215\010\316\203\256\371\346\345\273\360q\247\245\313\215\372P=\355S\266\363\325\327\2537\252\3330\370\337\330\331lL5\262\273\1778\367\356;\367A\264@S\225e\013!\375!\325\t\265X\021M6\351*\324\303j\257.\324\367\316\367\323\316t\352\257\353\255\026m\304\271\004\343\377\316\207;I\047\030w\342\t\047\221rR3\317]\336\325\306\367\250\255\360B\2378\357\234\037\000\315\346R\035z,h\250\027\253\353\265\023\365c\0071\003\205\254\252\345Q,\364h\327\030:c])tR\252\226\251\025\347\320\311u\345\321\311w=F\347qW\250\0339\330\035G\047\336=\213\316l\367mtnw/\240\263\320\235G\047\337\375\030\235\307\335?\005\260\327\004\202\350\004\003C\001_&\177\343\234\275PE\315\357\302\017;\351\277.\037\232\313S\317\315\331\025\227\300k\245]=QZT\311)m@\2616U\273\"\rj\006\235\231\256\373\350\334\357\372\005\235_@&\200\223\355*\241S\352\372\035\235\337\273\202\310\243`\367\020:C\335\303\335\376\314)#g>\276\330\351\216\365E=^\367\223\213o\301\007#\265W\352\357\354\2144\376\331H7\266\235\030t\253_\234_\344\010\360\030K\242\332\023\351$\272K\t\0312\355\352Y+\325~\325\263>\376\301\371\001{\006\312\375\327\236\336\255\034\253\364\"\245\251\362\315Jo\245\277\225\262\235\253\257\267M\356\177\314\312\007\205+:\305\022\024`C\215\335\244w\221Rr\017\235{ \013\301\231W\325\373\033:\277u=l. /^\352t=\336\254?\3309\346S\316\267\253\327\253\311\332[\365Ow\222\215s\215\365\335W\234)\250\3049gN\016\000\277\003\345O\216\221@\210\240\0231\025\010\3164H\t\273T\253\325A\273T\235\254\301g\213\375\233\355)\025\223\373P\252O^\222,\242J\353uz?\250\366W\277\302U\006\346?|\005\372v\3049t\346T#]Cg\255k\023\235\315\256-t\266\272\036\371\327\361\327\345 \362\343\307\235\365N+/\310\210S\215\251\226\333\357\242\263\010\302XwU\232?\220\222F\343\032uU-\220\2337\343\037\235\037A\034\255:\253\271\277n\374\rc\275,\374\235\335""\307\316\355;{\047\336q\336\301e\223Y\234L\275\353\274{\2456U[\306>\300\340\007q\006\006(\320[\177w~\177\002\305\376C\351u4\331\247\231\307\002:\013jT\2421\236\006\247Q\034\225F\273\247\320\231\352~\200\316\203\356et\226\273\263\350d\273K\350\224\272\377D\347\317\356(\216\361\321\3004:\323\201\024:\251\300L\300\217\333\316\311\367\235\367\257\343\322\320\376\245\201N\013\304/\353\205\035\277\271\366;\325\241\352Bm\240\376\355\316B\343\343\335c\273o9q\350L\277:\277Bg\202& \331F\363\032jPZf\210v5\343jI9\314_\266$(\325\325\277\241\001y\213z\260\236\350\303\202\264\223~\340<\3109\271\274\223\377/\326\3531j24\356\221v3\213\316\254\032\376HW\364Uk&\321\231T\272\342<:\363\252\001\375\206\316o\335\017\273}\031\251\325\302K\320/g\234\231\331NO\017\221}\3576\356C\035\264\326\\\240\227\201\354}~\245z\355\200\006\364\223\363\023\264\004@/+\301,\025|\3657\265\253\367\032\253N\002z\007v\r\347\311\037/\326\312\240\243A/\223l\263\371\225A\047\323\265\210\316bW\001\235BW\021\235b\227\335\242\222\350$\273\357\240s\247\373.:w\273\027\321Y\354^Gg\275\373\277\350\374\267{\004e\321H \204N(\020C\047\026\270\213\316\335\300\":\213\201\025tV\002\253\350\254\006r\201\203\033\344\300\047\317\026ZO\377[\231\252\314\2036\361<\014\377j\247k\007Xy\266\374\213\325\006\337\255\306\253\245\332\327\365[;\245\306\315\335\336\335\001Q#\320eq\310rr\177`iU3\244\331\210\226U\324m\355\202\345\253@\315\271\362b\345\347jZ\020\332\363t\314y\003\252u\257\347\235\312`e\324\250\352\255\024\371\305z\037\225\331\323\361Z*4\ro\255\027\232J\025t\202w\235\273\033\316\306\346_\327^\222\256\207\345\274\322\370\323Ie\234\314\342\336\2117\2347>\252\006\253\263\265)\313\177P\331\265h&\215\226F\047\275\370+\324\235\207\350\371\364\273\362:\260\363\332`\247[\312\217;\005\277\2550\347\255\313\265\241\332B}`\347\333\306\302\356\307Nl\312\231\272\343\3349\374\312\333\234\233;0yR\215\345\306\027\235.\335p\343\272\337l\326y\353Z\275\253\376Q=\273\363\373\356G\273\213Nr\332\231\226\332\344\213\255\305;\347\256\325uW\220\213\326\\\220\275\372\364S\220\341i\244\373\276\252\351VJ:\273s\247Q\334\355o\357\316\346]g\026\206^)\266Q\215\026\373H\266\016m\257_\330\223\215V\272\002\337\370Dn\210\231\375\047/\237!\357\355\246_\230%\366\334SW\277`\t\251\311\177\240\363\207\032\344\177F\347\347\356[\350\334\352\236\350n\312\231\037~\264zA\247yr\230\035\342\207\316\355{\316=\340\006\010N\23408\333r\275\231\332\007\315\316\251\337\023Oh-V\317\261\3042\327z\363%Y\271\002}\351\245s\240\325\315V7\017|\346\232/\334O8;n;\267\357\374\r\354\230k\004\237\207\035r\331\263s\354\370)hu\216\236\247\267\344\000\361\034\274\330\330\r\266\273s\300\230!\255C@\357mi\251\217f\005\353\350\254\233\351\365A\305?\274\274<`\202\324z\233\240\375\2507\2357A\235\251\235\257C\006g\235\263\240\246W\037\325\326\233\357M\201\374<4S|\227\302\355\305\206\031tf\272\357\243s\277\373\027t~\351\236\353\366\335\331\372\261\202\013\233?\315:\263\267_r?B\236\375\341\333\217Z\340\224\350H6\233\354y4M,\250\355\276\372\305\374/\231\225$Ghd\247\026\376+:""\277\252\026NM\373\017t\376Pv7\177\372s[*\320w\344i6\232\331\320\"\355B\227e\206q\004*\001\315\306\361$\211m\234\333\241\272\240J %t\030\2718\334M\253N\272\005\013{L\233\373d\356D\225\360\010\235G\335\303(C\206\003\021t\"J\276\320\372Q\032\235t\340A\300\267\202\244\271\357\035iRK\013V$\001\315$\352\346Q\034\"\324VB\324I\000\347QM\324\231\236\257\3656\365\267\245\016m\273\033\032\034H\n\331\047e\364\374R\330\252m\240\263\241N\312\220\255\332\317\350\374\034\270\205\316-eLK\265Fc\304Ct\036*\313\265-t\266\002C8F\014\251\021c\002\235\211\343\223\350L\036\217\034\367\255\355/\201\241xV\371\356\275#0l\034j\251\010tJiP\261\352\254>r\036I-\233*\205,\003H\247\264M\243\3649=\261QH\013\331\324\333h\030\267{[\274\271\316}\357\376\021\340\332!\316\356\270V\375\267\235m\271\302D\374\242\2154\352\364\266\345\274}\310\205VUH:\321r\212\346\2278\037\226h\276\033po\023\233\3531\262\315\"]\226\226f@\211\275~t\006\001\344\355\237\215\2743\r<\303s\006\317\260\330{Q\226\223\325\ni\232\264?I\334\265M]i\267\200L\362m\335\222\304\007\231\272N\2413\025\270\207\316\275\300\022:Kj\013a\003\235\215\300&:\233 E|kL\232\373\335\377\345(iH4\367<\343\234\271\240\226\022=\373\203\317\336\224y\354<\226SQ{\007\231\014\212lK\"}\272\213\013x2\245lAE\"9O\273;O\320y\002\n\223\357LV\032_\335\227\235\304\334\314\360\311\337.i\220\353\2575rNr\372\271\366\300\016f7\361\231l\335\354\351\325\030\362kL\315li;\226\366\016\311d\225N\236\256\241\263\006:Q\3235\202\373\362\376\013s\000\370\352\321j\326\377F\353\340\231g\010\232\027e6\355\302\322\\\326^\312\263M\207H\354\220\326\262\212\316jw\021\235\242\353\010\020\211\235\226\026\366\250>\244h\371e\356\010\214\242\317\277K)\027\020h5\313\266M\242\021N\033#\n\246\223\010\241\206n\037\270\"\203\003\332\230\320\002\245\351f\346\334\257G\200u\317\2779!\025jZ{\261\367t\250\177\022\317h\241\224xf\217\217$\034|\205p\252\273\351\036\006\260\356\352\321\234\305\264\177]\277\235|\3665\206\261\317\004\322Y\033\232\277L\2403\021\230Ag\006f\235(\265\003\005t\n\201G\350<\nl\243""\263\035x\374\254\345\377\264\260\001\274\374B\325V{\255\236\256\027\201\301m\250)m\310\317\217@\341\275S\275\325K\265\376\3466\375 >`\356\"o\247\000\265Rj\2044w\241\215\002Z\032\241\215\002\332!\260O\220\331fl$\257S\350\244\374\317s\220\022B\3534\276\2654\031\360=8\340\234|\247\202\235f\353\3213\345\215\313\236\340lu\tF\255\347\021=\300\036\340\r\326\370\337\267\342H&@$\300\311b\214VC\354s\217T\013\366v\215}\356\221jA\253(b\331\246\320|Q\362\311\037\026\263O>\273\315\237\253n\240}{\013\347\320\220\327\245\335\257\234\204\034\314\344ya\274\320\247\305V\037\364\236O\363o\3470\363\221wE\224\234\222TH\210\321\266\261\031\355\213\021\243}/V \033\007\373\200\251\275\313A\322\210\326V\210\321\233\350l\232\365\261\246\047c\376\n\310\213\036\216$\323\177\330y\3208\346a\272\363\326\247\265\353\265d\375\255\235O\033\311\335s\273\353N\354\266s\033x\016\270\345i(\353j-\373\202\000Z\036\261\r\250i\025\322\336\354\240\025a\232\356\220\256\242\347\371BW!m\234\3328\r\004t\017\214\236\365\270Xo\256\333\003\326\213\256w$Y\377S\243\253\321\357\303\372+\265x\255T\377z\347\026`\276\351L\201\022\000\223}P\013\241\275\343!\037g\335\272\036\205\332;\315\364I\017\267MQ}\215\327i\251\305\236\002\331Z\016Y\256\320F\023\265w=\307\244Ey\027\357\257\324\246\014\357\305\212\331\221\344}\260\361:\336f\345\341\375\325\332\203z\240\036\336\271\273\033\330\035\025\332\027\010u\320w@\320\310;\273\254\0331|o9\244ew\222\346\366\305\030d\346J\263P[\250k\325R\014\264\366\304\250\225\235\020qy\244\341\275X\003:\222\274\037j|\320\010\372\360\376\263Z\0010\337\336y\270{f7\345$\222N\022\220\003f\030M\0019\214\331\326\355\t\276\327\371\331Fl\276v\3514\256j\303\0071)%\246\223\016Jr>\207NN\355|h\246\213I\351On}\006\357{\325\274\177\314\226\001.\035I\275\346E\214\272\017^k\264\257\351\263\r\n\250\027\320\272\200\275 @\274\047\325\206\326!\013\350\024\272\267\321\3316\274\247\353\277\232-\004\377\365\317\177\034\377\267\363\332\373\300\251ud\345\243\247\305r?]\261\373\312Sh\314\352jVP\257q\372\243{\315\t\337\357^""\221_\005\304E\274\256\353[\003\365 \277\271\0250\274\372\016^\010{\032/\255=]\376\027\324\362?++\362\256\330\315\2473\345P\345L\005\365I\304\013\250\366\361\007\343\326EM_\255-\324\373\353_\302\240;\263\033\334\267!S/\214\3753\030U\006\353c;\3376\226v\247\366m\010\322\336\363\217\343\247\221E\200\275\374\0264F<\311)\002r_b/p\342\351\277\236\256;\247\007\353\257\327\007\367\003\257\227\007*\203\225 \201\201\"\360\274\006\214\005\302N\212\010q3\362\343Jo\345\"\010\220\036l\203x(\264<\350\234\371\250:Q?\266\017\255\364\266\354\027\202B\021W\026\370^\301\226\257\323\216\325n\326{q\006\324[~\023:\313{\320CR@vP\360\001(\375\030\372G/\346\366E\371\025a\260\325s\272\334U\276P.V.T\326!\356\214\230\307~Y\377\000J:\2703\332\350o\000\365\257=\315\312\036\010\035\340rm\244\376\312N\257\363\315\304\356\360\356\272U\240W\221\225\270\235\365a\371N\245\204\247Y\317\342}\305\222\326p%^Y\307b\314\224\203\345d\345\254l728\245\320t\227\257\227\247\201\233\203\330\rG*\307A\240\246\365\025l\310\363\313\316\247\337\357L\355\244\315\215\301x\312W\354\003C\241\365\341\333}\350\300P`,\341G\200\001\230\201ut\003rU_\336\3114\006\033\252\223\003\244\t\t?W\026\245\244\305\234\002\316\273\330q?\336\351\332\271\010\263\226)^v]U\247\313\201r\320\252\322\267\000%\220&Iz\365MC\010^z=&\233<\244\021\222\007\305\222\220}=x\251x\n\370\035\202Z8\2153\323c0\216\257\327\216\327f\352A \027/&\177\317yO\336\210-\357&\277^\327\222\322\316\007\327\177P\034\312\\\360\324/\346\202-\336\316\345\\y\tZ\023\024\270:]\273\210\315T\345\202\"\361\030\345\002\325\245r9\375\217""\343\047\376\267\361t\350iZ]t\376t\360iP\"\235\253\216\326\372\235O\277\303\216\271\327\203\265u]\364\214\243\270\036P\375\261\336\337~\023<\373\204\2711ZA\325\275u\343\260{\350\334S\363%Z\032Xhj\236wD\327[n\324\203\355\337\250\247\331\220\357\215\026\366\244H\037\335\024\n\312\0042qBi&-\231\363\233M\374#a.7\330\376\245+\342\251m\350E\263\0342\250%.\352+H\311\342\250\331\202\324\021\340\324M_\373\220\027\335\r\243\271\211\275\341K=\232\014D\310\364\311^\001\031k\272\313x$ve\216uhO\206\326\352\354-\003\373\252`Z\244\263\027-\302M7c\232\235\246\361\310\266\347`\027v\227\216\263\353\2405\315v\331\372?\233]\035;|\364|\254y\301\233\323\233\224\367\310,\217|\211VW\356Ep\377\355b\253\3018O\016\020E$\247\017\232\225\3232\211\275iO\033\307\244c\314\2413\34725\\j\272\215|4\371\3735\356\307\273\371\353s\367\027\310y\357f\332A\362\213\344<-x\333\366\200\366\235\203\366\251A\332d 5#\215N\332e\210\225\355nz\263\330Q\335\313\351\377\333vr\310\322\331\030\376\341\220A\266\227\264\274\344{\363\354o\007l\341\034I&\177\273\343]\302\366\273 \014\304\004h,\362\036(y\305\025Y\225\034\2645L\3030\315Cl35\373@\243\275sF\326\232d\225\334\312\375\177\374\252\265\243\311\350\357v\374\326\253\007j\257\327n\324\266wN6n\340\231\365\335\2543\003J\001(\206\362\256_igG\002\203&$\366\221k:_LB\231\346%\266\031\217}D\315\326\250i\243\214,\251h^\242YLg\204\\\234\036\250\365\036iN\177\217\327\337y8\375I\355\003\261D\367Nc\004/G\330\335vfA4\303\320\047o\353\264^\236\242\341\317>ij\337\233K\303\237m\215b_\324b\037\223\240\275H\262\221\365=\206\265\352\346\364\047\265\376#\315\351\037v\322\177\363\266/M\201\354\353Ci\007\222V3H\305\320<\026\233a\271\003\366{\217$\253\177\334Y\367a\265\357U\204 \247A\343\220\027sZ\357\313\220\306a_\316j_\230\355{\03541\231v{\355y&iudrE\032\207f\262\330\374\312w7\275\350\360\250n\252\037\373\273\267\324i\256\252\047\363b\256J;\214\264\210D\212\207f2\331\0307\337K?\242\233\350\275\177\367\026\372A\206\3344[i\305\220\333\332;?\242\233\346\375\177\367\226\371A\246ht*\241\025S4k""\257\374H\362z\330\3274\304\367rU\020\326\240\203\340\021\036\247d]\032\356\373\036\230}\341\005\351\037\366\324\320^\201\266\255\024H\247\246\031\242}L\223v\312\213\335M\257n}a^\037\274\346\363\274\314>\304\"\265k\305\377\331[*\304o\373^S[\355\263e\266}\335\010\351{\304o\275\263\322\322:\366\321a\360a\226\331\370m\032\2629\037t\376\200\330\353\273\352fK\020\373B?2\256\244\346L\242C\257&\321\272GK\213v\355\177$\241\345\251\336\2543+-b\240\347K)\353\253\016G\273Z\233\201u\342A\330\326\366*\247vW\304+\276\240\013m8\033~;?\241\256\226v\021;\362\354dk\302!\215\017\350\335\023\357Nn:\233~[\201\243]-u\333\216<.\331\332\226&L\266\356\211\327%\345\026\234\237\211\325XWK\273\215\035y\310o\2525[1\230\306\310\227\374\244\214\366[\222\036o\372v_\347\237\261kq\233/.\336\341\231s\346\320\334ML\303|\345`\270\253\245\215\272\216<\365\320\337\3323\017)\047%7v\265D\367]\212\232\354jm\355\263#\257:\014\266\366\246\303\2143#\207\177\275\032\357\273\326\023\351jmu\261\003E\021\203\207\367Z\376g\214\036\262\217<\317\350\361Ro\033\035|\236\273F\361\2362u\337\244m\215\341\273\025\265\334\\J\277\334\333E\017\241\225r{\200\027{N\305U\334\227x\347\332!j\367\377\207\342>kHnvu\352\013\266f6\\\277\2547@\277t]\341\321\322Cj\t\047!\037-D\013\027\2610\346\273\355y\320\013\240Z\375\367\177\363LX\370\275,\036\310\r_s\215\003?U\331t\367\027\246\367\322|O\333b\370\nh{U\220Jm\257oo7y\025\352\373\n\232\277^o\323\234\321\367\330\360\035\347\216\334\365\303\276\332\306I\245\234[\360[2\270\237\3370\340\271=\303\327V\322e}&\333\234\375B2\251+\264\221\343\373l\215\275sf/|\323\242\025m\344\370\332J\322b,\2355\240;O\306\321\031\017\204\321\t\007\222\350$\325\265\351t\347\211~\336\017?WG\216G\360v\244\221\343\021t\"\307\223\350$\217O\2433}<\345{\327\336\323\357\312O\252\337\326\322\377\023f\362\301\275\2367\360\271c\257\363%\032\270k\347\253\312\240\027\370\005\232\005\353\017\276\255\244\321\371\2462\305>\2008\314HX\301\357\365\234\332\273q\263\276\260\323\217\026\337\377\223\346\332\344\2103\006\004+!b\345E""\013\357\240\014l\224\203\345\204\212\331(\017\225\027*\3752\260\005\315\271T\371\252:(\202\316\277/\010\333\364\217\353\307\352\"w\262\200\306G\242\240\310\0214\327\307\047\002\277\250\366\324\202\265\273;\307\240\337\366\374[\234 \270\n*\334\3513\345\361Jp\357\314ei\n\275\177\372R\355_\302\334X\221\253\321\335p.\0165\372\377\372\347?^\301\363\014\047z\234\236w\341\303\236\263\345\351\312\025\220}\307\020\353\237\225\245\352t\255\177\357\314\373\242?\254\243\351\364\271\312\026Z\271B\033\356\355\253\376K\3644;z\033\224Ra\357\214\246\313\2023H\370$Z\376\343\001\207\021\347<\231YS,\222\360F\371#\230\341`7:!\004\237\030\005D%\235\250\036\257NI\223\347o\2449\365\336\3517\201_xv\242\247\267|^\232\205W6\253S\373\200\260\033\022\335\206\256\204T\235>[\236\205/~S\0148\345\234\002:\025\017\306+\267\240\224\047\245\275\370\311\2477\313o:\347q\376&\216`\234\202V\342\274\215\003 \006\367\211\246%h\034\047\361\330\310)jD\342p\307\336\351\336\2753}@\345]<\347RO\241\242N\274>/\352\233\232\361\377\324\010\212\265\372I\320\t\342e\340{\047\372\253\357\tn\234x\017\017\245|P\275,CoW.+A\374~%/o\037\370\353\325\177\274\362\t\336\237v\241\372K\375\253\235\301\035\240\014\373\307\211W\366\320\262\374\035\020D\027\234\2130S\330\271\325x\342$\222{=l\034\303\024o\013su\250\232K;\003\215\233\273\347v\013\316\324m\3476h*\250\243\370<\326a\337\355m[[\333O\027\353\025\331\275\323\330}>\207\272>\203\307,f\260y\210\363\026{g`8\021&\360\357\312c/_\225?\007\351\335\363\237\312\272\323\367\r\020\364\035\356X\337\021\327\367\342\014\006\271\370\010z\373u\224\221\300\262O/\037\232Y\027\260=\365U_\221\247D\274\314\252\376YO\303\320\357\303&\005\r\351\304\307\325<\314\025\360p\234\017G\276\333\t\302\264\314\207#\20380\001\047\277\206Q\346c\047\006s\022\240\014f\322r_Z\033p\333VC\366\205(z6\375|,\371\026\362\236\020\026L0\215\207&\202\013n/\223\047\270\036\373\002,!I\322q\226\354\203\020\030\255}R\027\363\216P\371,\350\354\217QEUou\2778\307.\343\355\306\027q\010~\264\263\336\360\225\275\342\360\245_3\302\223\250x\0204\014c\363Mg\n\346\265@\371\222\263$\267\334\255\033\377m\243({\005J\257\310<\037\337\276\203\374\357\t\003-PY\240o\311W\266_\2301Wq\212<\340\014|\273\363\025\0362\365c\314\217\3101?\306\334\300\323\235\365\345\235,\014I)\241M\201\362\220u\262\342\331qfyJ[y\266e\215\275e\253\255\250\237\2179?\000\rO\204\225\017\214\326\300\031<\222\320\006\346\\\307\373\311\2578W\206\033_\355\016\356\3722gX\034\315\365a\216\320mv.5\006\260\315\314\210aB\352tZ\241\263\267\244h\214\242\276f[\342j\333\305\347\343\316\020\020\361\2353#G)\250\037\\\220i\003wn\342\206\334\2403x\013\027p\222Nr\332\217?c\215\365]\337\306#$\324\316r#\273\273\351LC\207\202\246#G+=T\3316\341\244\360\372>\206\252\227\372\236\217?\243@\304\023\347.H\"\220\204PCb\251\352\005\371\323s\010\355\206\255Pq\377\013h:\276\272\237mel\237\2204O\000\266S\031\332\256\364T\207\252\313\265l\375I\343zcv\3679\031\331\272\214:_yM1\322x_HZ\221V`/\256\223\201\tY\226\3202\237}0P\233M\265O""\240\355\303\334\341f\355-\\\367\264FI\365\270\371\263\242M}\254\354\\n<\330=\341\304D\205\0103\354NL\376\2374\006\0175\375\327\317\237\333\353\256\266\365\253oMd;\270\022 \314y;\262\026\320\343?r4]\rx\371\374iea\340y\370\323\232h\374\256\261~\270\251\037\356\034\360\323\001dg`\233>\332\347\266\364\212}\347f\201\302n\366(\364\257\227\257\227\265\322\277\206\234!P\036@\047\221\232\264~\r\352p<{\255\325\271\363\304n\217\342\007\256$Y\014\354a\227\321\366\020\047\307aV\362\314\031\266\365\020\232\275\240k\333\326\332V\210t\264\225\014\363\351\020\004\355\005\321\021\037\262\031\247\033\300\354\213M\047\321\231T\327\317\322\023(\364|\306::\353\201\":\305@)\320\326)\275\032G~\003\0216\324Xv\"P\261\2779\277\221\010\247J\205*OuLp\302\014r\352P\262S.*\333\r\337>\311Bk!\276\257\217\3523p\235\023\243\3001\220cx\014\365\320\r\277Ui\272-\246\335w`^m\356Y\266\232<\203?S\326J\206\022\047mK.\322\231h\026l\337rB\206\374\244,\321\0317\273\037\330\0076\355W\006\350\n<\373\035\010\375\242tG\224\327\374\316\275\335\327q\212#\027\\\241\267\343\014\216\252\014&.\367\016]_\255-\214\277\213\323\375\370a\344S\323Usk\003\341yw\237\3500\021\035\025\267\367\257\351\344\047\355_\333ov\320\376\265~\371\247\255+\362\317\226D#x\305\340\221P\337\364:\275m\303b\3170\354\323\212\372pW\347\344\316\2103\002Q\233\316\346\326\241\347e\255-C\336\333}\337\231\021\253U=\354y1\356\177\326\332\244xP\315^a\263/\264\261\317\340\333\3631\373\275<:\032N\307*\354\333e\351\374\n]\360\273\321\335\336%_\325R\037B\307\2167\036\355\342\036\366\247\241\306\324\241\033\347\025\264\241\272\204\2666\347\361f:?\266\303\214\016\352\335W9\304;\355\202Pa\267AB\214:q\320\274@/[v\226\345\243h\366\304\302\2663\"\365\231V\246\354\223C\3724\376\363\361\354{ gE\034\210\204\246(\227a\226\334\r\365\362\363\360\252\265\216|\252q\010]\002\304\251^t\261%*\215w\244@\333Ga\265MZ\307:\362\225\253\035R\230\203mP\221\237o\251\334>gI\013+\244+P\177\246\003<4\014\331o\270\220\312\260\331\375ru_\254\210\017\253\337##^\352N\371\211\277g\037\364""\300\255\362;5\024sW`\214\201\330\331C\363\245}\263\201G\366\256\2714 \260W\t\354\363\277\324 }_k\326\306\225\035\350\314\304\261C\013\273\236V[\321;.\255\245e\353\013n\234c\237\t\242mB\032\223\355\353Zh\234\240Eg\232\367\222*I\227\033\352\207\016:\251\031\356\242m\332U[\031\354\253\236\222w\215\276W\231\255\266\302\341\326\004\346\317\r\234JU~ \373\336\236\267\321v\220+:~B\022\030,/\023\201\326)/\023\241\326i[\371\332\307\322ije\253\353\276\314\2453\322\366\2336\264\266\240\217\357v@N.\326\306\352?\302\354\n\004\223l\355\277@5\\\033|\356Jh\273\235\025\264\030y\305\326C\347!\214Rr\210\262O\363\320\020E5`\337XF\242\200\316J\353K\265: \030R\265/\353\375/\314\2746\333\2274m\265\2660\265\337\333\264op\362]\020\030\351\356\200\tJ{8\330n{\024\240Q^m\003C\266\\\274&\341j\337\221`Ox\354\253\231\332\272\225w\260\311J\033x\330s\010C8\276P%.a\352\307^\177\200Q\034H\177y\317\030\264I\271WBs\031{\255\317\276:\326\276 \217\226h\211\215$M\351\3566\337+\305\364-Lm5\255\353\214\374|\355\020\r\270\365U\302N5l\337-U\373\000\205\357PF\257\362\320\233\323\264JH\217M\353\327\033;1\275\367T\227\264\367\260\256\211\320\223F\254\311\321F\272\363ca\353\013U\007\215\206\366\252\256}G\270}K\213}\347\253~c\243\223\203\342Xc\375E\370\330\346\3556\240S^c\001\023C\274*V\230\263\320\032\371\337\304\306\003w\342\332\305\306\326\344\372\345F\272E\023\347gIs[\214\333\047\037I\204\2204\247[\307\350\241\027ZC\210tw\300\030\332\360\322\031\223s\221\2167\313\357v\327\333\3270\355\251\205}\207\n\335gJ\202\230\306D\332\265\241\031\306\355N\266\317\353\2373n~P\275\"\217\036\375m\023\207\027\3254\350` \315\032\364\035\246\035\221\223_\327\203/\314\3006\233\353C\2779R\232\357\201\266\034\212\203\237\337`\034d\313Y\255q\260\275Gb\240\216\217\324\354\353\300\245\300T\355\233\372\0241P\267<\326\004oK\326\274\014\006\376\213\215/\377w\0308S\013\267\201\201m\351\303\027\371\002\200\274,\024\267\305\305\322 \255\t\332\267\316\331\317\204\333\206\250\264vB\254\323\327\203v\240\017k\016\206\2350\336s\304z2rD<\360\325""\336\236\374N\343\226\377\330\354\337\233\375\305\241}\177\276\2551\332\267\177\222\262\343\373l\270~_\260#}\373\333:\256\257~>\345L\311\215DZ\022\246*\246\373\241\351\315\324\3738\003\273\037\370%\360\"\252Q\2136/\316\030\01449\344\221\332\333$\203\007j\203\372\206\366C\014Z\362zm\250(iLG&04\336\3236>\025\234tw\262\354\242\235\3451,\377X@\263\001\273F \213N6\360\033:\277\251\307\303\203xZ?x|\034\235qu\222?\206N\354\370\324\361\216\214rR\321\272\361\005\023-l\224kM\306\264E\321\332:\252\243\334\201\212\326L\355g\321\023\276\370y\267\277\363\023\373\327\374gR\255N\354\355\203oGrb\377\345W~\\\2644W\314\356%\237VwM\243\344\362\216\375d\004M\252\354\007\205\354\353A\354;Zl\363*\222\326\264\310E\3336s\235\231[}\201/O\266\223\327\035\335\241\221&T\366\263\021\264Be?Gd_\262j\337\305B#$\315`\351\262f\222\322tg\363\257\235i\326mgv\333\247\024\3621\024i\317\340w]\037\355\212\221-\001Y\273\330\267\353\3337\332\222\270 \323+{\047\222n^MwF+i;\263\333{\202\337Z\336r6\374.\024$\021MJ\013Yl\330\327\353\333\327\220\323\332\014=\314A\373\025\324\244\365-\302\035Y\366j;\263;\276WI\032\241\375\256\001i\0254\032\3220h_)f_\220Mk\212\276\0276\35370;\262\235\331v\216w~o\323\336\003!\235\23148\332`\247\005H{\345\321~\022\214l\033|\237\035\325\217cvf\373\263\275<\3579\304`\311\267\343\274[p\177\313\300\331\202\021\3700\316d\206\325\355etpe\"\320\326\261U\355\275\205\352o\355|\266\373\256\030\r\244\212\206\047\235\333YY-\257\236\260\373\375|6\256\2379\261t6\375nd\245\356B\372:)\352\366\n\200\375N\002i\350\276W\316\371\326V\020\353\047\030\240\031*U\332\317\2358W!k\3532\232\375&\235\344\035q\251\047\336\373\336\266\332\372[w\272;!\346\354W\371h\337\233L]\237\240\363\244\233*,\212N40\205\316T\340.:w\003\013\350,\004\326\320Y\013l\242\263\251\326\031\266;\264\031\356\333!\345l\211\006]\373\355\025\373\016\2049\334!\377r\322\231\224-\247-M\242\305\035\265ow\323\207i\025\355\237\"\332k\243\324\036\354\2478H\221\246f\341k\372\374\047:\177v\323\t\234it\246U{\240\345\047\272A\222\232\305\023t\236""\004\206p\211i\3508\335 \031:\336\326ig;\033G\304\211\200\006\215\327\326\274\324\321XX\034\213\025d\353\356\206\2271*\333/\226\221\232O\002^/\023\010m\237Z\304&:\233JB\320\231,\262\214\211\240\023Q\007H\347\321\231W+\221t\216t\245sC5\352\266\005q7\n\260\022\017\010a\215N\341\231\267\366\324\345a\016\312\360\376\375f\371\277t\217\354Agf\200`\371t\027\364ny\276\216*\321~\342\210z7-\336\223m\202\357\033\2544\217 \241OK\3464\201\240\327\214\250.\3510\260}\276\256\255VN\315\016\344\260\352s\276\371y\367\262\230\013\312\026\215\3277B\005~\025sb8\216\267iF\322\232\302\365\375\356)\227~nNh\274\324\207\351\2249)6T\3754&\322\005\031\244\337\320\235\351tA\306\006:\033\252\372i\303u\002\235\211\343qt\342\346\006\365\216)D\027\241\355\304\361:49\247\004\365\002d\341#\347\221\3544\304<}(\027\232\315\217?\035\330<,\363$a\374p\3647oh\377\326\367\376;\333*\274uiO\372\022\335\035\361\023\326\361O\201`\240C\373;\377\252?n\340\020\374#$\230i\177\375t\324\306\266\025\001M\023U\337\213\n\354\247\253i/\223\226\304i\371I\277\256\047j\2104Z\032\210G\261jF\225\360\246N\034\rth\273BUTp\210\325\3223\244\355lm\246\036l\337!\375u\237+Z\233\3156\344\343\265\320\211\344\034\2316\345\35492Y]\321\350AJ\222\375,\n\2554\331\207\005i\002I{\030z\007T\354\315\221\026K\303,u\"\232@R\205\215\005:q\356?U\273Y?\013\275m\275Cu4""\210\037\\v.\007\033\347w{w}\353h\250\321\217F\377\236:\022\"\020\252\366-\\\004L\211&\006\375HZ\302A\047\332r\266\244\312F+=\366u\272\324\217h!\203\372\021\215{d\260B\313?\244\375\320(H\223\013\032\014\365\326\222X\306\245\301\320wf\370\2027\257\004\241\224\227\305\316\2604\330\225W\024\275\254J\372\034\215\362\256:WCx}\344\256\357\"\356H#\330\360\273\353Xl\305\356|\325\370\032\273\321\254\330D\223\213L\320\215\240\206\254\033\241h\322N\335\210j\210\366\000I3!\333m\352FTC\264\034CSxRS\355\261\210&\203\244\274P7\"S8\352FTC$\367&\237\263\242\206\241\244\023b.%\225\007\234\221\277\274\212\272\201\357w}\346|6\206w\2338\261)\277\232\n5\246p\\\362\324\224\3304\331\031o\204\361bN\271\232,W\024`\322\001\372\217\\^\261\237\327\265\257\347\244\251\021\031#\220\300\263\237B\242\r,[y\240*\242\021\312\326/\355i\273\357\315k\221\347\254\251\021(\351=\261#\rBO\016\275\271\227WS_`\252k\316\265\360\356y\361\314d\302\257\252F\033\351\206\337\350$\266\334wf\033\267\361\001jy\031\265|\r\031\006&}\322\315VUiP\242\336Dc\223\375`\222}\223*\215MdmF\n^\013Z\004\255q\266U\213\010AIW\204:\016C\260\\\240\310\373V\325\376\211\236\247?\227W\2537\321j\001_\3449\203\2276 ,[Y\257\006\252A|\211\347\324\323h\345\353\352hM\274\014t\312\351y\277\362\240z\242&\236\360\211V\006\021\t\275 t\362\351\r\361t\321\026>\353#\036\342\001\307\351\355\257\366\302\227\247^/\377\247z\2626\2101\357W~\257\365\243\347\035|rG$\372\240\332/\023\235\257\374\007\346\347gjS\030\354-\037/\247*\203\225P\365lu\241\326\017_\237\206\t<\032J\340\353\355\351\275\323\357U\222\325\336j?\262\351Fy\3359\177\251\326\r\211\316@\323p\336\372\324\371T^\344|\372l\371\036\244\272\212\027G\364\342\035\263\270\006\020\250\005\233\347\200\352\314\010\250b\275,\207\263\345\273\325c\325\367q\315\234\220\\\254\226j\203\222j\021\036\250\275\203\357\003\235\366E\211\233p\370\014\372\372\336\351\367+\013\325\376\352 \242\234\256\364W~\2044?\356|$4+z\241(\217S\326^\205\365\014^%,\036\020\332\357\304\225\234\255_\307\tRZ>xcis\366\223\355\244/Lw\354""\362\315\375\216\334\247\324\372]J\362V\021\274QI\314\013i\326Ab\203V\316\365=u\235\2729i\277#\357\332\264~\257\n\210\026\371\260\2154\266\243UO_\225q\246c\317\331\354w\344-\233\326_\262\2011D>f#\347\237\264\001Hk\276\324\004\264\235r\247\236\260\331\357\3105\306\207\270\302X\276\025\006\352\2515{\360UJow\354\302\342\375\316\\Hw\230\313\350`\"\245\357\272\266u\t\352\017\244Dh\233\377\216];\267\337\231\3674\016\363\232\006h\362\372\342f\032&H8\330\227\375\353s\222\035{B\343\320\314\370\014u\324O\234O\276\007\205\0214\177?f\374\344\377\264\310\027(Z\353\217v\266\241{,\n\341-\257Y\003e\031\257\252\024\346\2334\\\220\220\240\356AMB[\t<\0373~\204\214{\204\021\007H\nh\026rG\363\3450\303\243r\037\202\027\244?\034m^\264z\221\226}MY\313w\r\002\211\370\346\025\2774\224\026\311|\347\214\264Hf\237\311h\317}N\255\335 \2107\223\035\232\201\255\275gd\331\036r\033\207g\274l\004U\21476\212\223|\366\264\333\267e\321%y4\337\366\275?g\254\273\275\257\036)\036\256\356|\327(\210y\254\305\304\316\334\352\364\342w:Q7\265\017\270\267\260\276\264\335\325\301\313\234\366_\342\251\237\016\237\371\241\005 \333\202\231lb\251A\222\301\006\235F\321\013\337\235<\354\263\377\022ma:m\004\363\262\317\035\267f\357\262\377\022\317?\274\224\323\017/\373\372\225\026\217=\354\267};\263\215\253*\2076\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\320\207\tI\237\240\306O5A;c4 \322\2420\3550\353\253c\305F3\035\340\244e\374\266^\006\375\314\203\206\007T\210\253\036\216\220 :h\363\330\276M\313~\305\206\272\003\355K\322PJ\333\223z\363\253S\202\350\325\035[gi\323\256H\233\325\027o\303oA\022\371>Muhc\341\337\320\371M\331\014k3\251\216h8l\373\243\335\025\322\342\034\3213]nr\366\323\277\007\034\244\361\034\364\"\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\016:\222{\320\373\n\366\351\010\272K\210\352\203\304\024\031\267\320\316!\335\033J\243\003\235\202{\324!\331\325""\301ziy=\300\335[|\227\000\244\360\3629\333p\220\346z\320\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\t+0\232\277\331\207\212\354c\207\244\336RG!3\372\307\335\0356\377j\177\275\264\272L\357\251\027\337Uz9\223\206\316\002\203\275\265\225y\320Y \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=\351\356\304J|G\353\345\032B>u>\375q\347\021\332\201\370\325K\260\321\353S/7\361Z\245\235\023\215W@\027\333\024\323\047}\317\035t\226Mg\323\332\360\365\335\372o\341aFZ\257\267\017\310R\205\320\002\t\351a\244\034\333fxd8\364\307s\326\313OP\272w\205\326//\224\304M\273\227T/\255\331\260\036\025\013\326\203\016\313\331\357<\266\347\260\\\313\246\253\355\257\230\3538\341\277\342\\\031n|\265;\270\353;\300\014\373\232\026\213\333\232v.5\006P\035\233\021\353\236@\274T\307\3608\210\230\275\330\373Z\276f\022-<`DSJ{.i[\031\223:F/\344\331vvd\n\376\347sV\316\020\024\361;q\376@^\"*\217+\276\224\312i\315\250\370(\231\024\323\222\243^\345\025k,\244\223\321B\027\351d\324e\350D\305O\235\266%\336\377\273\014\211\217\222\031\361Ag\220h\342\337\3263H-\333\017\357\377m\306\303G\311t\230\326elco\373\341\020\337\003\301C\235\267\031nw\365\334\304E\376Ag\360\026>X\014\223\306i\277\352\031\363\265\354\026w\341\354,7\262\250\247\3119\031\220/\365\264\307\316c9\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\">\021\213\034\240C\313\373\340\326^F\365\234nu\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\243\3638@7\323L\2423y|\006\235\231\343\367\321\271\177|\016\235\271\343\277v\346\326\232\321\372\005\261\0254!""\006\177P^\240\r\001w\255\347s\355\325d\333J\317\036\371\355]F\373z]\022^\366\345]\367\273\255fy\350\007\010\332\274\313\341\177\0256\311p*?)@-L\026\266\272:\262G!\336\035\330\177\201;\363\333\3004~\233\365\377\001\246\321M\371\373\235~\251\341E\337ix\331O\267\266\362@\303~\247oN\177\321{\323\217\324{\267ta\372\376\251\327\360\342\245?\221Kx\366\t\n\371z\371r%]\201a\370\257\023\377x\245\227\216E9\047\337\253\314T\305\311\240W+\375\225/\252\377\306CDo\224\277\250\234\202\236>\270O\336\351Z\277\365]\317\323\t<\320t\262~\023\017%\364\226\337\255LU\036\326z\235O\304n\2258\035$.}\312\341(~\3129\365~%m}\377\332\323\207\025:\326u\026Od\375\373\351z\371T%\351\364\313\273\020\344\211\"\226\036\317-\341\021\247w\260Z\260D7\313o\000\274\347L9Ty\247\032\254\336\225\315\302\375\331\271r\032\217\221\215\225\0071\213\022\3600S\031\334;}\276\362O\344\2048\231\345\274\211\326\\\307A\315;\363\226@\225\004\355\340\323zJ\334\204{\346\203j\377^\357\331r\242r\2742\245\316j}TM\343a\214s\270/\244\316I\341\333\264\027\353\347\344\321\215\223O\305:D\257\310S\336\355\201H\373\361\300\326\024\002\213\345\376\362\315\312\353H\312\231\36200\3526\264\342\r`\325\031\374\352\314\233\345\002D~.H<\337\207G\335\240A\234\177\247r\303\371\217z}\356\335~\301\212\273\364\376\360\273\240\272`\276_\224\273eQ\327\2110\347\235Ok7j\372\030\0330\007:\305\277\237.\224/U.\201v\264.\033\307\343Jo\345BE4\221\217\240\342\326\025#!\355i\340\332W\320,\216U{\335\200\377 \327l\340\361*\001\334\325\034\221\370\261\232_\253d\252\337\001\313O\n\016SN=\364\311\376\t \024\357\177+\341\376[\317\323\341\247\177T\302\320\2162x8\357Ly\3049/\216\273\230\212\277#\004\003 \336,\247\234w\256\327?\204\232\273\211g\343\244\222\367!^\035\367fy\323y\357\313zq\347\343\306?a\"uZ\336)\227\300\252zE(\201\330\367\217\355\367\364a)\025E\257\231>\002\034\332\300\306v\3329\rI\260T\031(\355\227\3204\232p\217zU\250\006t\274mz\025\322\374^5\255Z\300\027\225nl\001\362v\264y \367\243\332\"\310\250\323\244\225\236\255\255\n\016\r@\373\334\033\030""\254\237\201\242\234\372OeK\360\202\243m\202\255\337\213\351Z=\000\031@\227\006YR\336\254$\240\274g!\355\233\365c\254\300\373\047\336\251\\\257\334\203\257\036\356\364\356|*N\030\277\333W}\255\226\251\177\273\223i\014\242\024\276^M\324\216\327\356A\374\007\342\302\317\217.Ap\272.Nab[\030D\276\275Y\026\n\325\r\271b*Zg\240\206\276\366\346y\220\216\316\3338\333\202\3360\010\202\361\374\273\225\2208\001\tRS \3317\022\r\272\326\317\320\2056\252Q\264\325\276X\335\250M\202\254\022\034L\373F\276\325\350\337\357\301s\2237\244@\300\016\365\371\323\364\323\377\002\243\272\005\205\330\002\372E~=\342L\047\262\034\2508u\272|\254\374~\245\344|\210\322Ot\351u\2200\363\3253\242y\002\317\353I\024\223\257;\257\343\232>\224\023\371s\032\233Co\245\037\333\315\000\342\001I\305\017\260:= \372\345\031\327\211\312+\325^y&5X\271\0135\372\216\020\253O\247\313\375\316\033\037\"7]\351\016\020\307\373\047P\020\016B\205_g-\374\233\362T9\207%\004\276b\255\374\253\\r\336\271\ts\247\323o8o\\\220\003\323yQu?\200\234=\203\247D/\326\336\005\036\221W\226\n\353\353_\330\227T\243\374\241\372\006\326\304Y\347\354\205\352\224p?F\346C\313\330?}N\234\343=\266\367\331\315\372\274\270\026\253k\267\177\357\353o\366\256\335\250\207\304\235\357\242#F\312\375\3302{P\244j\356\023s\366dQ\234\177\364\226{\367\002\307\201\007\257\236\334;\361F\371GH\022\370\327\377J\360\r\312b<\005\373\032\366\332\025\3503\203\220P@\305@\377~e\005\017\373\276\247\216\265\3020%\006N\020\303N\000\240l(\301#\266\320\n\366N\274^\276(\252M\214+_W~\2069L\220$=\316\030\307\352\203\352<\3569`\305I\\|\223\003\240]c\377\017l;l\000"; - PyObject *data = __Pyx_DecompressString(cstring, 25543, 1); + #elif (CYTHON_COMPRESS_STRINGS) == 1 /* compression: zlib (29526 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&iI\323\367\323`\003\016`\033\333\030\362\252k\300\200\033\260\3016\001\322\264\275\313,Y\262\364\222%K\226,Y\236e\226\375\023\372\047\374f\244\2214s\31611\211\235\362\375\265\304\222F:3\243\327h$\215\244g\237\355\203\377r\213\345z\037\374\025\373V6\033\213\325Jy\266o\275V\\Y)\325\372\212\265\352Ze\256/\027\035K\014\274\017)f\352\215Zq\266\321W\2564J\265\371\342l\351r_\002Bu\205\007\201\225\271\322\\_\243\332W//\257,\225\3477\373\326\352\345\312\002D\315\225\357\226\347\326\212K\032W\337\374Ze\266Q\256V\352}3\233}+\265*Db\272\242B\264V)\317\227\001\217\245\3227_\255\365\325K\215\006\244\371h\266Zi\324\252KK\032\357\312Z\243o\256\330(^4\361\026\265B\265R\254\025\227K\200\006\230\207\214\324J\215Z\271t\027\223\325J\365\265\245F\0352`q\364\001\352z\271\336\250\367U\347\2414~\372i\256<\333\370\351\047\010)\\?\375TY[^\331\004@\261V+n\326\373\316\003W\230l\005P\027\353\227c\200b\010\311\341\0475\204W\227\2125\001\277p\261\257Z))l\n\207\312X\2518\273\210\024\253+\245\312\305\276\305\362\302\342\305\276\245\352\372\305\276\331\245j\275\244\370\276[]Z[\206\302VU5[\254\364\315\2240\277}\353\345\306\242\302\326XT\200\202*\220\202\346\357\374\205>\310\372bu\356r\337\324b\031h\334)mB\251\252\310\363\365\013\340)A\365 \244\256\013\262\336\267\276X\322\3456[\324\005\214xM\201b\0331\205\017_\351\232\305\004\232h\005rX\307\272\204\206\323\330\274\374\254k[\263K\305z\275o\241\324@:\345F\271\270T\276\007\010\220y(?\331 \372\020\215\312su\005\303\300\307&\004\251\201\271\314\365Ug~.\3156T\373\323\355\007\210+n\201\273\352:\262\266R+/\027k\233\254\255Ai+D\246\251P\256\303[\306W:\007\227\340?N\371\243\\\364\222\301x\3116/Dy\251ZY\342\324\360\313K\032G\260nx\340\002Kd>\207\250\205\372\371\233<\331\305\333}7\025A\025W\000\256\253\265\302\235u\014\334\276\240\231\215Ug\241\235T\032EU\224\330\270Z|\340\032Q\251\242\273 t6\252O\205i\310Vz\245\336(V\240\017\"\262Zu\001\320-\003\372YU1w\313Ej\001\363\325""\213\242\035\0001\177\007\244\246Q.\325/\273\242\275D\305}\t*`\255V\341\035X\226 \222\251\2565T\205\231F\246\344\024\n.\335\316\241\371b3/U\352k\200\324\324\243j\347\305\245ul4w\241\351\315\021\302\332ZE\226\357\355\013}\377U\r\277\036\250.\323D\200C\214\\\232\277L\254\020.SZ\t*\254#T\234\240)j\377p\242\366\277wA\020\365\235/m\254@w\200^\3257\0032\007\305\t\364\274F\265\266y\261\257\330\350[*\025\353\215>\327\311\346\213\345%\323\003K\265\032T\355lu\256\324\327W)\225P\200\237/\342\027J\"\0036(\372\"\n\371\276d1\tu\014lm\222\340\005X\245\3320\224.\274{~\256\\_Y*n\2526p\001\370z\367\374\002\214 +\027\240\211\277[\177\267~\2718w\027\213\007|\220\225B\255XY(\275\217X\346J+\265\322l\021\371\307L/\026\021q_i~\036\362\364U\337\371\363\357\326/\234G\262 g\261D/\234o\324J\320\325k\305\005l\355\027.\\x\366b\337\305\276\005\340\345\362\047_\365}\373}\264\017\332G\031Z\004\224C?\372\241+,+\234\365\345j\265\261\0109\213\306\2463\206\320\032V\333\314R\211}U\306Q`\275\3625xH\244\324\251\245W\240\267\303\307\227\373\262 \200\337\007\337\373\252\217@y]\216B\272Y\335\367\342\252T\317\347\242\205\350\330Xj\260\020\317d.D+\324\202U\226uQ]\252/\226\347!\337\321Z\245\2706\3277VZ\250\256m\364\215W\225$\212\336-A\026K\003\305\271\276\224\022w\n\341@4VH\r\\\213\017\346.`L\332\312 \023\231\216f\242\343\027\006\326\226\226>\032(A\375\245\213\r\210\256\364\235\307P\271\276\330\367M\337\307\027\373\222\2455\030\314\227\372\276\305\000&\306\230\357\372>\2760X\254`\255.\2277\372\364\010\246\352D\017r\203\325\312|\271\266\254\363h\361~\370\321\245+\037\177\014\230\032(\356\261\311\314\352t\370)\214o\265\245r\tE\221J~!V\254/BE\217\225+\245X\265\321\260\3365\254\201\370\306\n\214\220\025\034$|\245\320:\306\312\252$\260=\2444\026,\212\241\311\344`!\231\312\025\206R\223\311\330\005\233\n+\275\330\007\232L\251\270\254\260\244\0232\256\342o\020\303\330\210}\330\2073\251\3114C?\002%\350\343Kk\026\370\0314\014\3203\334\320\207\010\022\311\364dN!\200\026\002\241D.\001#\341\215\370\005\375\331\362\032\364X""\220\320+\325:|wW#\253\177\005\022fm~\276<[\206\222\350\033\321\035\217\320e\047\207\206\022\203\211x2W\030Ids\251\314u@\205%\016\005\346\232c\"\231\213g\222\3211l\221\251\014\244P2\261o\004\252\027\362\253S\344\201\221Xa$\232\214\215\305m\2121 \326\227\333\\\221\211\306\200R!w=\355\322\271\366hK\225\177\240\032\247\252\233\\\"\225\014\371j\244\2724W\252\205|3\222\032\213\3053\255\277\010\360\306?\223<\272q\033\302kZ\277\034-\256\315/C\335G\347\212+X\340\276\312\034+\317\324P\233\300\352\364W%(0\252\"Y%\216\307\263\321V\250\306\207\022\240L\373\205\316z\021\207\254F\271\2464_P\213.\001\311\276\301\313\311\252\357\363\276\363\240\354@?hl^HB\217@\206\262k++\325Z\203\330AV\262\223\351t*\223\213\307.`|\251R][X4\202\032\025tT6m/h\335\200h\244\316\224f\253H\034\330\375\n\3726\350\177 \213\226\2530\260\316\030\371\320\000\274\305\205b\271r\231\021\004\265\0024\007\030\314\224VR\377\252\317\016S\220\250\244\007\226A5\351\320\243\300Ry\006\2504J\240Z\000g\240}\227\324\350\003\242&\236\276t\365\213\2534$\242(\204!qmFi\226%5\334\315\254\225\227@\203\351k@+@\255~\276o\263\272\246\0064\314\356\nj\240\354\003\020\345\025\245A\243L\177_\t<%\323\n\3609\024\365\373 \236a@Ru\007_\017\025\227\352\245\313\2515P\361\346/ep\324\352\213\003#\t\230\355l\250\262KAON\r\0252\321\344p\274\020O\306\2400c\361\351\013\342\213l\243Xk\264\372&\233\213fr\356\253\303\344\006|\327Bp\320\207\244\332\341h\r\315\032T3T\272K2\262RZ(b\356$\324\310\032\t\275W\252USv\334*\"\030DE\035t\300;\251V\303\231\2130j|\337\371\nHHlA\027X\344]\354\202jr\343\2000N,^\002\215\000\047\223\225\006\301\353\240$\201\272\252&\0074]\3211\365\257\254 @\257\031\351\252\325\245\013\320\204\007G2\331\304c\017\363\360-\r\363\340s\303|\026\047\267\376NM\375\225T\">\317Q\263D\232r\200\342\275\250Z\003N\271+Z\241.\325\3539 i\244%\210\206\324z\245/V\232/\202\372\352\247R\255\366-\243&\324\272g\345je\240\260\006\003\267\377\333Zy\345\320\021\226\022\014\227 \357\304\373#G\345\311\312\235\n\024\240\036`D@5\326\311\344h25\225T\352\317$v<""\230/\200\332W\237\325\225\013\350@\227X\264\212i\036\2451\212AP\007\3538\302\025q&\0145\261T^.7\202\2610R\253u\n\212\206\234#\267\272\217\3056A\013-\317\032F\247J\305;Bc\371\002\025\226b\337:\300\001\003*\210\330 \260\362\215\2422U\202\2718\026\251\314\362T\031\207\033\250\246\254\322%\003\3617\240\277\\\032+.\034Rj7\345\304\343vqn\256\000\315\2464SZ(\317m\364UfJK%\254\327Y\255\212Q\233\241&f\233R\0253\016*\362\346,d\032\346>\360\253\247\022\270Z\242\004;M~\224 #\\+\320m!\341\273\320d\254\370_\324\203\377J\025&\201\330.A\344a9\230!\010\250\250\261\357\242\022\277s\325\222n\343\263\265j]\255\032\325\252\263\320\206\373fP7\202dD\250\276\210\313*\330\034\010\317#9\004\031\202\365W\252\340\357\302\254\236c\350u\022\354\301\353\265*\224\340\\\031\n\246\216\323C\036\277T\252,4\0265\262\2712\314\033jX\356,\001\016\013\246s\316\251F]\026jV\261O-\356Pj\325e\265\306\253\346\275Z\r\316\202\330(\325/*\034\357\326\305\374\320)\024\313\345z]\257\"\254\256\251\261\\\255,\335)m\342j\326\002*6wu3FV/\365\177\014\312\367\307H\003|\027\312u\235\3679\020V4V\177\345VX\2107\310Diy\245\261\251\370\275\\\230\205Q\370\3622H\2122\255(\351\251\035T!H)\320\tx\2625\335\331|)\240\027\226g.\323\250\216\005\253\001\360!\014\306.\260\262\251\2758\365.\002k\024\252A_(\315\341J\231\006\350R#\277*7\355\257o\222\247\261X\323sK\035\204i0\316\372u\344G\005\263\304xye\243L\240\331\352\362r\265\302\000(-XP7$\0050\322\221\225W\335/\365\337\217\016F\007\007\007@\271\315\032\267\220U(|A\314i\005g\353\205\371\362\322Rt0\225\305\1776m\252U:\233\"<>\026\215\341\237Ie}\376d\251\354\240\372\261\t\235\337\2374\003\1776Y\246E\242i\234\361\342?\233r\272eR\227\244E\n\233 <~l,:6\036\305\177&\241\363\372\222\246\242)\223&\025\236\"\235\202?\223&\335\"Q&\225J\252\037,6r\31572\030\362!O\030\236*\233\200\277$\3763i\2357\220\324%\tO\221\213&\361\237I\346\274\376t\031\370\263\251ZTV~8\026\317\353_\223\224\007\002\251\323\231\304`\334\270\356\013\036\364}\263\2644\250\306\207,\215;\003\252\223\014\360\2562\320\272\337\014""\014L\301\237M7\025\236(\236\213\342?\223\314y}\351Ri\3703\251\254\317\227\250:\267\031\253\376\\Fw\014\206\014t\263\213 \260\320\223/\325\024pp0\001\177\364\275\363IL\203\261\261+\203\231\324T\326z\314\007\276p\340\263O\006\306\242\203\243\346[\026r\010\202\300 \026\230\223%bq\347c_\013@\360\313\261D2\236\315e\022\243q\031b\030\002\300 \026\230k\030\006\310\313\276\227\220\340\3078\247\201^\222\205t#\3760C\023\002\016\342\232\032I\344\342Y\230\311\047\342\231l\000\300\260\205\301\003\350\242\330\\S\311xl :p\335\037v\310\302\300A\\\261|49\030\037\030KAe\312 \303\024\204\006\020\r\304\307r\270V\301\274\016\201\017\022\3748\023\217\216F\247\242\327\271\237}\356\003\005\276\037\034KA\035\014\217G3\223\003\251\033\223A\210\303\025\036\021\304\230\202\014G\307\260\350\262S0 \204\200\030\316\360\230\020\244\223\270|\025\315\345\242\252\264E\230\243\013\202\003\270b\321\314(\344e26\230\312\3073\001\200\303\026\n\017\242K]K\220\203-\232y\031&\t\t\305!S\267L\231\211\016\247\222Cc\327\rY\036f(B\300\001\\\361\344\360\344\330\020T)\367;\034~P\360\373|<\t\321,\347>\010\303\025\032\321\n\243\304\026\212\3510,\303\3214\312\047\374\247\244B\010\310\341k\021\023D\232\211\346Aj\242T\320%/\001\014a\030<\200n$:>\256\032\237\366\270\317E8\344\263\344\260\352\203I\021\340\237\373`!(2\321\361\204\363dR\331\254\014ql~`\013t\376OZ\246N\014\217LA\3710/\373TBB>\036\035\215\216\306\235o<\025\023\001\216\312\007k\205,\360I\313\364\251q(\327tb8\236J\372\202\014G\020\032@\004\r-\231K\014F\307>1Z\202\017\342\320\205G\0041&\223q%\025\265\207}\317\303!\237\201T\313\305c\266)J\000G\023\002\017\240\033M\014\216jYB\276\201\353(B\224\n\340\2038\324\341\021\255p\007\276k\225\036\306\335X<3\220\312\345R\343\276\240\303\021\002\r\"J%\207\307\342\303\303\361\030\365z\t`\310\302\340\341\350@\373b^\037\n\007\t|\314\306\350\340\340\374\250Qy<\232\033\034\201\022\033KM\311\020G\341\007\206a!M\205|\342\353\303\364\224\361T\3067V\370 \014ShD+\214\022[(\246\303\260\244L\337I\371\372N\352\320\276\223\006-sP\267v""\343u\237\372 \201\217a\3065\232\035\211Ni)\316B\016E\020\030\202%\033\037\002\225\351\223\3618\224|,\033\002\342\370Bc\002H\263q\334;\313%tK\314\006!\016exD\020\343H*\225s\365\304\203\014W\020\032\206(\223\243\316c\375\002\205\000\005\277O\2038\004\032\271TZ\206\030\216\0000\210%\007\245\030\217\245A\305\214g\222\001\000\303\025\006\017A\207\025\r\263\215\251\304\340\210?\314\221\005\301\001\\\271\350\350d&a=\356k\021\016\371,;9\232\0005\210\373\371\307\022\024\374~$3\231\315\351\276`\375\354{\037(\370}\306H\004\362\261o3\207J\200\311dbb2\376I&\241\325x\036t8B\240ADJ\005\204<\332I\277\017\302\320\205F\0040NS*\3269\375 \207\263E\214\017i<1\206\377\314g\316\353K7\224\200?J\346|\362\003(\030W6\255J)>\236\207?\233(\274t\342\231x\006\024\rK\260\205\204\267R\257\205\370\213O\247\341\317\244\231\016\357\264\361\325\265\342\322P\";\022\317\350_J%\002\362\223\241\261T*\243~LZ\346\367%\205J\032r\0255\324\252\316\2062\321A\030U\3111\251E(\360\301xT\375\270\304-\212|\250X3\373\360\306\275\\(\340\236e\241\340\007\314\007\023.\224\032\205\352\212\261\035U\033},\026\215\002\004\032\235Lm\345\027\352jsQ[\317\262$hP\270\304\302\255\261\343\266\270\300^o\310\360Z\245\214V\236\014f\315M\347\227\212\013\216\352\202\317\3725$B\262\211pg\350k\301h\025l\003K\325\352\235\231\342\354\035\013\320\246\220>\322\004\224\350\311\354\325\206kk\256\314\003V\263\"&4\027\365\026\271\250\213\\\214DG""L\023\031\to+#\343\321\021\333\214FZ4\250\221\\!6\230\206^\231\2121\257\371(\000\t\373x$\232\215;\237\370\224\001\002_bd*c=\356;\021\016|\226\005\335\231\034\367I\266\225B\rq\271L<\211\213\003q\356w\237\372A\341\337\217\247bq\356\367}\317@\276\357\313\013\213c\325ue\010\211\246\351\211\201,\374QR\347\223\037\201\362\234\030O\215N\032\327$\227A\3377\343\211\204]\317J\264X\331\342\306\231d\233\211\026\230\300\330\322(H\234Q\047uF[\t\240Q\320PL\232p\3617\032\273\006\177&\215\365\371\022es\360\027\237\246_\223\232\007\002\037\270D\341)&3\271T6\2215\256I.\203\276o\362)\3703)\363\341\303+6\216(\350U\303\326S\210\342*\212/H\337\206C[`\324\326\256\203\361t.\004\024@\350\217i\2054;\226J\307}\301\0002\016m\211\310\377MX\352\344\230Qq\306\302u\235\261\324p\377\307\352\307\244c~_\322r\2454\016Mo0\206\377\240-\220C\211eH~\212qC\211ir\330\007.\024\374\200%k\221F\377o\323\265\350\025\343\321\314h<7\2240\256M/\202\376o\262\331\204\372\261\251\263\331VI\363i\374g\023\346\323-\322A\376\247\225\225\246q\355\047\"\030\370\314%k\221\302&h\025\217Z69Z\321(7J\313\205\202\003i\355b|p8\206\377\014>\347\365a\214\307@w\326\277&-\017\004R+\003\001\343\272/Z\333\r\214Cu\271\232jUI\tP\272\241\337\031\327$\227\301\3407\212\231\204d&q\0303\211$\374\351\232#\327~\226<\244\346\340\263\350\264\3765\037\373k>\000\tC!\022\267J7\231-\304\022\306u_\360`\3507\343\306\225\337\214\267\372\306%\013O\221\032\037\267K\341\343-\026\305\307a\266\207\377L2\347\225\351\222\321\\&\351\214W\222\255\354X\222\251d<\231O$\355\2043\331b\352\231,\025k\251\201<\374Q\264\363\311\204)m\231\026+\317\242\245\260\262\301N\243xO\346\006\214K\337\371\202\022\rE&\306\342\316\047\277K\264\030\205(:\023M\2162\257\374\226A|\037\217\251j\047\307|4\326\272-\350\270qr\304\007\3415\230N\343\332\207I\330b\352\233\316\246\340\317$\312\266H\224O\244mm\245[\324[:\237J[\005 \235o\205)\007\1776Qx\223\232P\313\240\372\227\022\210\200L\235\201A\302J\325L\013\371\232I\r\302_\032\377\231\224\316\033L\212\377\372?\376\230\034\367\005\013\005?b""\311Z\245qIZ\244\030\216g\262Y\334\237\211\217\215\311\220\3754\004\350\303\222M\270\345\244V\013K\231|\002\377\360\237I\351\274\201\244.I\213\024\2511\374g\223\245Zp\206}\024G\263L\251\270\204\377\224\345V4\003\177\240\225\350_\372P\004$\226\254])\316\266X3\006m\025\255\247\222#\370\317\244u^\177\342\244K\322\"\205M\020\036\017\212\207mw\331\026-0;\236\310\332YE\266\305\374\";\221\311\341?\223\314y\375\351n\200\334\326\2776\355\215V\242<\233\033\204?\223.7\330\"Q,\026\317\353_\2334\326\312\316P\235\274P?C\372\327~\302\002!\237@s4.\377\242U+U\221\200\357\313\251\350h\341Jz$m=\346;_8\344\263\20149\374\223\201\303>\230\304\315&\346\025\037rH\310\307\303\321\311l\326\371\370\247\034\020\362%eNf\255U\306\324jWv\2618W]GsL\355SV\232\332k\3544]\210E\326\211\200F\\(\314VW6\013\005\033\234+\225V| P\004\326fK\205B\356\223\334\047\004\265\036\311Y.\232\204\277\021\374g\022F[\210\006g\270\333\312\204\027\217\377\016\252\037mY\316\274\205\301\245j\245\304\001)\370\322\037\216V\346\206\014\036\002\247K\245;<<\2712Wl\010D\352\234\214\002\244\262\3440j)F)\025\244\222b\024R\002{\212cf\010\035\272\0002\207\212#rhb\352\207~\035J\360\033\234\344eH\001b\260\202\327\241\205\200\303\233\312\016\032\227\241\305\220El\002\0345\302,r\0140\364\030t\0042\372\227!\3178\324\231\000\342\214C\233\341H3\014\345\264\376\315\220\303PO3\334\323A\344\323\014\373\264@?-\360s\214\014a\020\037C\047\2601d\014\227C\025\300\344\020q<\016\r\232\213h\307\341\303\200\301h\374\014\047\202\014V\364;\274\030\262\230S\352\307aMY\234)?\306\224\305\227b\330R\016W:\245\177\035\266\264C\227\016\340K;\204i\2161\315P\342I\003\343R[5\247\024,\021\0030\224x\230\2213`C\323\204\035a\003\021\324%\035A$\214\202@\357\303\355\020g\023\3727I\216#\202\001C\303\370\031\t\004\031\n\350w\0040\304\360s\214\014a\020\037C\047\2609dJ\322+\307!\305\200\301j\374\014-\202\014^\364;\304\030r\2303\372\227\341u=8\027\350\3009\327\177s\274\373\346X\357Ug:\254""\307!\326A\203\333\205\030z\r4\024t\310\021\321aFG-\2420/\247\245\001\216\232\013\013z\032\354(\3520\247\251!\206\352\200\031\034\007\344\3208 \006\306\201\260aq@\014\212\003\276!q@\016\210\003\003S\372\227Q\230r\350\247\002\270\247\034\342)\216u\312\241\204\242\"\307!\305\200\301j\374\014-\202\014^\364;\304\030\262\230Si\375\353\360\202\337\240%/\303\n\020\203\024\274\016\047\004\014\312\301\301\204\376\265(\321O(\215\327\241D\010\241D\257E\211\001\213\322\234\204\341~\207\336B\014\021\001`\244,\334\020\264\000G\326\202\030qv\212&\000\340lp\260\343\305\017\025\014\361H\307\025\207r\3268\234\363\247\317\351\210\200\340\213@\214\047\006\221\374P\004\343\205 \202\017\202q\036\334I\237\000@\360\302\300\214\037\037T\362\304\"\031_\014*xcp\316\037\235$\222!\301\231\2011\2668H\362db\030C\006$\2701@\316\n?\215\024\002\022L\211\010\306Y\000.\331\023\321\214G\001\027\214\212\030\316\2558\355\024\006\023\374\312\030\306p0Br,\343\031\3132B\360,\243\030\323\342TU\010\210\263,#\034\307A\270`XF;~%\234\263+c8\267\354\344V\020\"x\345p\306\252\037,9\345\261\214Q\016\026|\362\010\306\2469\037&C\234=\013s\254\t\220`\313\3068\226,\210\263c\201\234\025s\326\314\027\024\314X \343F\300$;6\212\361ca\202!\013e\034\371N\254\205\0029w\376(\307cX\214\340\324\237\300\361\353\217\341\\\373\3438\357\276\223q\341P\301\275?\216\261\037\026%\371\367\247`\031\360G\211\034\370#E\026\330i\274\020\220d\236Gp\316\375p\037\333<\232\363\314\341\222a\036\303\270\225\247\375\302`\234__\214c8$Bp\354\213w,\373\"8\317\276(\316t\352Z\302\371\324eB\"$X60\306,\007I6M\014c\320\200\004k\006\350c\312O\330G4\234\240\217X\200\220 \302O8\206\200\004\003\"\202q\022\200K\226D4\343M\300\005\223\"\206qk\317R\372\202\234K\007t\034J\230\340\316E9\316\034\214s\345\240\234#y\"3\024(\270\363E1\036Cb$\247\276\004\214__\214\340\332\027\027\344=\300w\013\236\303\371=\224\327p>[\361\350\347\317\177\2464\034\3129\r\3049vC\243\004\317\201\024\216\361@\024\347>\020\311\263 N\261\206\301\004\3732\2061\037\214\220\254\313x\306\270\214""\020l\313(\306\264>\240\310\375\234I\2028\346\030@0Ep\307\014\0018\023\004\022\304\315\311[\177X2a\241\234\021\001\3641c\3438C\026(\231\262`\301\030\236\310\345~u\2407\000\220l:0\347SB}\214\272H\316\251\203JV\035<\300k\220\223\000\023\255\350\007H\207P\025\004\351\314\261\014\t\006\014\214\261\300A\222\t\023\303\3300 \301\210\001\nV\324\001d\021\030O\305\374a\311\233\205r\356\004\320\307\237\215\343\034Z\240\344\321\202\203\\\206p\021d\241%\375 \3610\312\202,;Y\035\204\010n8\234\261\344\007K\276x,c\216\203\005\207<\202\261\351;\261\035\n\344\314\372\243\034\277a1\202e\177\002\307\265?\2063\356\217\343\274\253\023\257\334/8\325\020\306\240\003H\2764\234\261\243\001\202\013\r\022\304\371\031\3630\230dF\304p\246\002\021>\346D\374q\301\214\204\260\027d\253%;A6\302\310s\262\374\004~\020\302\271\021p\307R\000,\370\022\261\2169\001\346\034\212\010\316\2468\333\037\006\023\254\312\030\306l0B\262+\343\031\3032B\260,\243\374L\047\222q\031\n0\2120\037\213\006\024d\016c|l!(\300\020\002\031+r\375%l\341%d\305\245\365RK\310\032K\350\342J\330\252\n\273\343 \000\220\01490\347IB}l\271H\316\231\203J\346\034\\\362\347V\363\314\225\n\222/\337Z\036\207\370\371\361\255\344\031\210\217\017\377:\236\357\376\205P\240\340\311\027\305x\013\211\221<\372\0220^}1\202g_\\\220\367\000\337-x\016\347\367P^\303\371l\305\243\237\277\024\033cS\20116\345\037cS-\306\330\224\177\214M\005\307\330T`\2145\367R\310\020g\300\302\034\013\002$\230\2601\216\r\013\342\214X c\205\335o\021\000p\2068\330\361\344\207\n\266x\244\343\214C9s\034.\370\223\367e\204C%\247\2768\316nH\224\217g_\n\316\270/Jr\357\213dY\360\335\317\021\n\344\031\360G9\376\303b\004\373\376\004\216{\177\014g\336\037\307yg\367\201\004!\202k\016g,\373\301\222_\036\313\230\345`\301)\217\220l\352;G|A\037\203\004\024\3341\230\2375\212\022|\021\314\307\024A9G\356\006\223\000@p\305\300\214/\037Tr\306\"\031o\014*\270cp\316\237\270\025%\014&\270\2241\214\321`\204\344U""\3063ve\204\340XF\t\246\331\355+! \3112\217\340\034\373\341>\206y4\347\227\303%\273<\206q\253o{\341~\316\037A\034c\014 8\"\270c\205\000\234\007\002\t\342t[\214/(Y0@\316\005\207\371\0301Q\234\027\003\223\354\030(\347\310\334?\343\013\n\216,\220q$`\222#\033\3058\2620\301\221\205r\2162L\2572W\334pn2~=\212C$\047\031\277\336d \202\213L@O\342\267\342\004!\234\033\001w,\005\300\202/\021\353\230\023`\316\241\210\340l\312\333vB\201\202Y_\024\3437$F\262\354K\300\270\366\305\010\306}q\214w\377\255>\341P\316} \316\261\037\032%\370\017\244p\031\010D\361\034\004\"m\026\342\2111r\034\223\0300\\\031?c\003A\206.\372\035!\014Y\314\252/\262\036\350\372]\240\267\271>\306{\026\353O#z\244S\227\027Y\217C\255\203\006\275\0131\022\032h\310\350\220#\245\303\234\234@\316Q\207 \346h%R\207r4\233&\307a\306\200\301l\374\0143\202\014f\364;\314\030\262\230\307\207\364\257\303\013~\203\226\274\014+@\014R\360:\234\020p(S\372w\222\034\206:\345\246\357\306\317\221\247\334\204\035\375\014}j\222\343\347\030\031\302 >\206N`s\310\364\035O\316\347PS\330\240gAF\202\240\206\014\005\035)\0028rxG\224\3650b*hi\331\020\047\245\200\226\222\n1B*\354\350d\365\357\0109\214R\326\351\034\306\317\251d\235n\201~F!;\302\361s\214\014a\020\037C\047\2609d\031e\032\256.\262\262H3\316\204\333\372\031\332\2143\342V~\2078\303\314\270\007s\t\375\353\360\346\034\332\\\000k\316!\315q\2349\206R\235\005\263\036\207X\007\rn\027b\3505\320P\320!GD\207-\235|B\377:\ny\307z>\300z\336\261\236\347\254\347\035\353x\343\0269\026\251\n\020V\353wh\025\210\360*\277E\254B\026s\"\257\177\035\336\2045<7^\2065aM\316\321\353p&\234\261\271\271\301\213y\035r\0030\024x\230\2211`C\313\204\035A\003qT\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\033ol\254\255\005\233\032ki\242\241\361v\026\037\317\353_\2062\357P\346\003(\363\016e\236\243t\355L\351\266q5\031""\212\263iP\334M\200\342\201\251O\334Mz\342|\272\023g\023\035\246!;\2458\240\007;\325\227k\273L\301\215O\247\365\257\3036m\207}\343e\370\246\355\240\217^\207q\332\r\371\372B6\353\261\210)H\270Y\310\241\047 Q\240\220%BaK\007/s3\256\243\242B\206\210\r0\032\nfH\250\200\243\240\202\226\200\356\254C\274\263\016\261\316:\024\354\254C\254\263\016\211\316:\304;+]\030\347|\016?\205\r\t\026dT\010j\010Q\320\321\"\000#\247\372\212\276z\216\221r\375\305\005\004\031\327gt\200\223`\375F\275v:4\026\305\325)u\303[\016\037=R/\322r\300P\255\204\251\207K\r\004\351W?]8Q\231\257\352\220zn\324\276\254\347\340ct\215\233\016\245VZ&\324\257\363\205Dd\326*\215\362r\311\000\360iU\301\252\203\020\257#Q\365c\013m\304\226\330\210\277\270FlY\215\260\202\032q\2454\242*a\204U\301\210\253\200\221@\361\217\270\302\037\341E?\302\n\236]\342&C\216\004\203\031R>\020#\311b\014i\006r,0\240d\005/\205\023\001\037#\n$\370\260\020?\033*Bp\241 >&\024\214\361\240/\230\343~\316\001A\034\003\014 \350\023\334\221\047\000\247N F<\253\327a\315\245u\214p\226\255\276\362\240 \232ek\256&\310\tf\371J+\277\336\316\027\344\204\035\320Q\2270\301\202\213r|8\030g\306A\375\034\341\205y\276`\200#\005\364qdaA\216T\224\217#\005\013p\244\240\206\243\304@V\377Z\372\350\047\262\306\353\250!\204\210\240\327\342\306\200EI\027\3651\257Cn\000\206\002\01732\006lh\231\260#h \226\2522\236K0\263\264\2043HK\004L\321\022\316\010-\301\315\317\022\314\360L?\001m\204\266{\350\025\002\243z\270\030\345\243\305(\033,F\203c\305(\033*F\305H1\312\007\212\321A\365\343\260\332\301t\324?\224\216\332\201t\224\r\243\243n\020\035\215]\323\277\016\033\370\r:\3622|\0001\010\301\3530B\300\242\314\346\364o|\332y\034z\0354\024\\\210\021\321@CG\207\034)\035f\3248n\2068\210\225\241\024\370\0342\272\n\221y\035r\0030\024x\230\2211`C\313\204\035A\003\261T\363)\375\353h\345\355\254\303x\031\205\274\235u\240\327\341\315\273Y\207\275\221\220\373\365}\213A\210%\353\207\023\013a`\307\216?\226X\363\203-\233\376\210\000\313!\354\330{\035\303\241\207}\021\314\204\214\n\313""\210K\021\310\214\213\n\311\220\213\014f*\300F+\342\001\222\352\036\312 $$\323\032\036\240\344\300a\364tl8\325\260L\352\210`\006C\222\332DI\365\3438\266\213\002c\376\345\2001\273\0200\306\226\000\306\334\344_]\215i\\\207Q\205\014R\033`x\025\314\240V\001\207]\005\r\001%\265\361\276Kr\264\0243\027k\032\202&L$y\320\0215P\"k\202\226\260\0018\322\3522N\347\023\3440\314\310\231\240$\207PF\016\203\202\034\00289A\201\243\017\301\315\021K\254\014%\025\037\033\364\306\331\2407\036\034\364\306\331\2407.\006\275q>\350\231\233B\231\227Q \200\245\302\302\234\022\201-5\n3\212\004qT\263\331\204q\031\275l\226\021\313f\203\224\262YF&\233\0254\262YN \237&\207\241\317\247\035\366|:\200<\237v\270\363i\216:\237f\230uC\3227[2/\243C\000K\213\2059=\002[\232\024ft\t\302hs*\214@\0207C+02d\014\227C\025\300\344\020q<\016\315\340p\214\034\207\017\003\006\243\3613\234\0102X\321\357\360b\310bV\327\256Z\217\303\256\203\006\277\0131\n\032hh\350\220\243\242\303\214\216\271\332\303\336\333\312h\211\253=DX\320\023W{\3300\247)\257\366\030\327}\216w7\326\323\202\235\214\365/\321\265x\257\242\313a\231\327!7\000C\201\207\031\031\0036\264L\330\0214\020N\325\024_\302_|\t_\361%\302\213/\341+\276D\240\370\022\376\342SW\351\230;j\231\227\321N\312n\310\303\234vRvC\023f\264\223\276n\250.\253\265\036\306AP\0260\230\343\243\225D`1\216\233\020\271\300\200\222\047\037]I2\224\232$\344\247\301\321\253\033V\231\227\323\322\000G\315\205\005=\rv\024u\230\323\324\020\037\325q\346\365S\035\367Q\035\017\247:\356\243:\036\240:\316\251r*\214@\0207C+0:d\312r\177\234Y\353\217;\013\375\361\200U\376\270\263\304\037\347\326\367\343\314\342\036\257\024&\307!\305\200\301j\374\014-\202\014^\364;\304\0302\230\223\372\202\246$\277\241)\311\256hJ\006\357hJ\262K\232\222\342\226\246$\277\246)\251v\364\222lG/\351v\364\222\201\035\275\244\333\321K\362\035\275$\333\321K\r\344\365\257E\211~Bi\274\016%B\010%z-J\014X\224\2239\276\356`\256?f^K\313\002\210\240\010;\252\026L\244m\330\322\267\020\303\204\273T\214dD\201\374\234(\240ee\314\010\036s\311\263eaL\210\035\036d\244\307\204\3201AGrL\212\034\272\030\332\371|\344\306%\271\361Pr\343\222\334\270\237\234\353\313i\2653\232f;\243i\2673\232\016\354\214\246\335\316h\232\357\214\246\331\316h:\233\322\277\016e\326\241\314\006Pf\035\312,G\231e(U\357M\263\336\233v\2757\035\350\275i\327{\323\274\367\246Y\357M\253\305\2314[\234I\273\305\231t`q&\355\026g\322|q&\235\347\\\346\364/C\231s(s\001\2249\2072\307Q:\201\250viF\252Ks\245\232\331\205a \332\206\321wl[\217\245NAb\200\205\034\017\004$6(d9\241\260a&\243\346\200\031\246\267g\234\342\236\th\356\031\247\272g\270\356\236a\312{&5\250\177\323\3448\324\0300\270\215\237!G\220\301\216~\207\036C\014\177\206\234\376\217?v>NF\205\035%\033\024\304\024\324\321SANR\0018UA\201\243\017\301\315\021K\254\034%\307\310\020\006\3611t\002\033C\306\357\"\017\000\030!\001\2664\003PN^DZN\004\2241%\340\226?57\347\026I\314 )h\217\304\314\221\2045\0227F\312(\t\202W\245\223\343Pc\300\3406~\206\034A\006;\372\035z\0141\374\034#C\030\304\307\320\tl\014Yj\214\034\2064\345j\300\3709\332\224+m\3643\304)V\262%|\373\250\244_\t\214\225\346\213kK\rz,\260\016\321Ye\365\254\257p\267\036\313\002\005\211\t\026rl\020\220\030\241\220e\205\302\206\231,3\253\316:{\352l\300\220:\353,\250\263\334t:\313l\246U\223\321\367\233\342\215\361\3448\374\0300\004\214\237Q@\220!\201~G\003C\216H\222cd\010\203\370\030:\201\215!c\270\034\252\000&\207\210\343qh\224T\3162\251\234uR9\033\220\312Y\047\225\263\\*g\231T\316\252\r\265,\333P\313\272\r\265l`C-\3536\324\262|C-\3136\324\360F|r\034R\014\030\254\306\317\320\"\310\340E\277C\214!\207\371\206\236\343\320E\372\016\373\r6\323a!N\341\006\233\357P\210Q\271\301g=\331\334\240\376u\024rV\016\033/\303\235\263r\030\275\016kn\220\241\214\351\273c\351\302~\2078\306\356\216e!\216>\306\356\216\245\020#\022\343w\307\252\033\370\215;d=\214\236\nZz6\304\351)\240\245\247B\214\236\n\013zZ\210\333W\002\004-&\316E\330G\217\tv\033\2264\271\210\327""\357\014\010:\202H\030\005\201\336\207\333!\236\034\320\277\016\371\244\235w\031/C\220v>Ix@\222\035\010%: I\016\370\t\016\370\311\2517\033d\310GV\303\004i\007\362\223\3271\202\005\r\362\261\241\201\202\025\365\006\204\010HF4\210\363\341 >6t\004\347BC$\023\032&xp\025\357\257v_\245\207W\271\257\302\003\325\315+\273\324\020O\035\327\tV]^)6\3123\345\245rcS\203\204%\234z\364\261T\013\211\301Wm4x\262Ro\240\221[\272T+W\347\020\266\270\326\230\253\256#\363\271O\324\217\315\033x)[\344s9\002\000e\006|6\037\3407Y\320\267\234\353\047-\224\343\260F\235\262b\375\014s\324)+\312\357\260G\231\262\302\257Og\267\247\007/Ogw\247\213\253\323\371\315\3519mP\234\343\026\3059fR\234\013\332\024\347\230QqNX\025\347\270Y1\256\266\014\307\255\307a\327A\203\337\205\030\005\r44t\310Q\321aG\047\241\263\200.\243\222`\231\260\001N#\301\262\241\002\214BBdDm\361\242\303\321O3\354\323A\344\323\014\367\264@\355\026\277s\331!\375\353\360f\355pm\274\014k\326\016\324\350u8\263C\014eB\3772\224\t\2072\021@\231p(\023\034\245\033\177s\327\323f\037\306x\035r\0030\024x\230\2211`C\313\204\035A\0031T\047\307r\332\022Y{,E\n\022=\026r\324\010H\264(d)Q\330\320\311\253\251Q\236MY\362n\312\222\017LY\362n\312\222\347S\226<\233\262\344\225.\226g\212X\336ia\371\200\n\226w\372W\236+_y\246y\345\023\261\353Q\343:\264*d\020\333\000C\255`\006\271\n8\364*h\t\24429\265\331\244=\216\204\016\032\032.\304\210h\240\241\242C\216\214\016[:S\352\2102:\216\306\224;\222l\375\014\377\224;\202\254\374\016\367\024;r\234\237Rb\000\035\206\331\t\001\353\347\230\235\010P~\206\231\t\200)\365j\316\024{\202e\312\275\3012\025x\204e\312\275\3022\305\237a\231b\357\260\250\233\357H\247\263~\206\336@,\021\016\340\244\014\334\0224\000F\326\200,\361\3011\323\241\215\327\2216\000C\231\207\031a\0036tM\330\2215\020K516\2261\256\243\247B\206\230\r0J\nf\310\250""\200\243\241\202\226\200\252\177^\375\254\366\203\225\317\352^T=\257\371\033\211\341\033\321a\353\261\210)H\270Y\310\241\047 Q\240\220%BaKgL\017\303\312uT\306\330@\354\002\214\306\030\033\212u\300Q\030s\2031\"\217\333g\360\230\327\367v\226\036\261\365\360Jiy\300\237\032\307]5R\232\264\211\226\210a\004\315\330W\213\231\327\227\016\306\303\254y\254\316\371\374\211\0229\373:]\256\305;uv\3142\303\n%\227A\371\215\036\030hx\320\tD\300\227:\tJ\371\300X\274\020\235\314\245\n\351L|\260p5\004\366\005\014\014y\373*b\276\305\373\210 \352\363\366\225\276|\213\367\372\224\300\326R\233\0222\277/\251\022\272$z)1\017\370R\203\030U\242\224R:\257?\335xT\tF\223\256Eu\203\240CY\247\243\234\317\237\210\304\222\223O\346\003\031\366}Fb\305\212\027\372H\006}\337\240\230\320\262\202R3\277/\351x\324\345\252U\376t\347\245.\254\023\210\200/5vD\335\033)\355X\253\016X\210f2\321\353\250\013\305\263\352\000Q\243\\\255\024\n\263E\210\2327A\007_(5\n\325\225F\241\214\223\235\302]\354\352,VCWj\345\331R\241\256\036\377+T\212\313\360\353\222,U\001\265?\014\362\243\310`\370\215/Xo\324\030\304\317\2016\261W9\311RV4\210*(\236I\000(\026\037\212B\357\202\331h4\031\213B\030\304\037\036\257\212\033\000\245K\247\306\242\031\021\255\001\024\255\226\276\213sc\245b\275$\002\227\013\205\022\314\tk\205B\000\274\201\257v\373\241\364\\\341\354fc\0213\345\217\256\227\0320yl\310\004S\265r\243dI\273\220\244-\341\226\270\000\207P\027\361A\362\205\364\346\006\374\303\267\226\013\311\322F#S\232W\237\341\241\264\\\"\225,$\241\260\262\230\020\033\017:\225JU\241(P\203*\370\033Vav\251X\257\273\207\316\315+\217\374yG\360#Et\253\263\350\230\214\232\234)t\350b\343\234_*.\324\303\333)\047\263`rW0o\252\037\322z\251\321\026\226\213eU\016\313\245FQ3\216\201\352\334\332\222\302\263\\\253\"o\352\303\002\265btK\353\350\004\270Y\251\225V\2125\225d\005\nvv\2614{\247\276\266\254C\265R}m\251\241\375\304(z\033\233+\344[\253\254\224g\357 a\321\036\203q\254\305\250\310\273jA\002\251\256\256\025\227\014\223\346\351\314`\2730\200\322\206\016\254""\250\242\207\326a3Xge\031\322j\260\353\302\177\320\303\357\226j\365\262\0066\240G\243\273V)\317V\347J\246\222\261\332\346\364VR]\211(\250\362z\241\\\207fQ\253\2565\312\225\022\324E\365\316\332\n\242S%V\250\257\315\316\226\240*\000\240\332\301Z\0050\227\347\374a_\202\0324\005\310\030\002\027\334\251H\026Tg\023)\354\016+\022 x\034\222\"B\217J\232\270\340YI\212\201\334\261\245&\003\254\351#\224\320h\\\3025ZO*\254\250\005%\004\227\355\201\"\014\325\364\246\034t3\\\3202e\211\325\242V\2660\tV\035E\007\300~>\352\3414\353\264\212\005u\260T\255\227\212\205\305\362\302b\021\252f\275X\300\321\245Hi\353\310PqI\377~\254\235~h\007\325\245\265\345R\021\352m\251T+\242 \340~\314\020h\243\013~X\035\237\206\345@\177\242\345\342F\010(\360\031\001V\327\260\001\200\210Z\303\302\323\\\254\000\357s\305\332\002\374\325\213\265Zq\263^\254\317\226\313\305:\366\273b}\2632[\256^\266M\261^l(\021Tl\324tv\213\320\300\213\013%\023X\320\236\231\231\031\362\224\026\312s\0333\345\306\314&4\377+\320/f\013wJ\233\263TX\263Z0\350\252\2517\240\007\317.\002{\245%\212^\302\326\017\002\250Q+\316\226\360t\356,\352\354\252\002f\227\253\224\250\272\264TR\242\265>\213\205\\A\341\001)\225\037@\025\340\260\201buvsv\211\030\235\233+a\0274ME1a\372\340\\i\251Q\234+\325gk\345\025\304:W\256\257,\0257U\327\307\256\t\377\240&+\rU|\245\345\242\306XZ^il\226*\210\025\312\023\362\014\277\365\365rc\261T\201\324P\013\200}\026\232\251\376\255@IW\327\311_\255-\027\227\264\177\275\214\\\324\033s w\261\374\265_S@\377\035\346_*/\227\033\350qI)\262\\\263^\030\031\324\350\240\207\010\222#(v\224X\300:W\036\354o\312\203\005\256<\325\231\237K:\225\032\2644\022\023\302\2420\201:\366Q-\344u\363qa5\222`p\305\010\200\372\002\212\025\365S_T\225\276\010u\215=i\261\214\235xs\251TYT\2669\3452\026byy\005\032n\241\004\245U\203\376P\231\203\266\007\254rr\216\024#\332jX+\353\365k\020\256\252\276pd\254\337\2713\253\013\013\332%\374\325\357\224\177\206\301DC\200\342\235u,\245\245\322|c\246X\003\267\262\320XTE\277\\\275[R\203\344\022\235\034\007Q\000""\177%\250\315~\375\371r\361\212\361|b\262R]\002\301\265R]Q\342P\375|\254~\373\271|\014\310J\352\207\n\016\277\330k\033\233\265b\005\344\371&\366\340\312\035\215\037\013Y\251:J\321\001]y\t\206j\255\312\327A\343\254\341\246\"v`\324\264P\256/,*AZ\253\316\222\224\004\337\025\353\373\304\372\256Z\237\226\225\340!\010\364\243:\350\301\313\320\363`t7\331,-\315\353\032\2351\200J\035\264\304\273\240\325\351\\\241^gG0\224\351u\337\300U\227\003W]\014\\\0202\n\202V \221\047h\024\300\205j\031\232I\355\047\006\356\224W\nj,V\215\212Ft\355\247\024\330\310""\030\374\016\203\253!\006=.\232\"\355\360R\267\343K\335\0160u;\302(%h\t\344\361\022\370j\r]\2338M\301\237\362,\344j\021\023\201&t\327|P]1\276\332\025\245\257\325\261\013\335\261\300\022\264\267M\255\0307\240_\316\\F\275\030\\\335\310u\262\306\"$\233\303\362\001=>\333\200\246\213\036\212\263\276~\347\275\342\274\2374\252\0055\264`\216\325\264\217&2kj\265U\377*]E{\353\252\377\254\325Kv\n\246r\251\263J\023\257\273Z\261\322\352\267\376\235\203F\001\243\n\214\353\025\374\207\223\201u\243\306\375\357\304\303\310\311?\236yuk\365\341\251\347\036\\}\260\372\360\314K\017_|k\273\262\023}x\372\315\355\t\357\255\217vV\037\236~k\273\210)\377\361\277\265\007\203\220\346\324\213[\047\267&\036\236~\376\341\213\257x\257|\270\323\217\251\373\232\317\355\364?<\365O\210\217<\347=\367\237\355\350\366\204\376hs\253w\213b\236yi\353\277\360\345\251W\266\212\377\177\365\377\241\000\221\323\336\351\3776\277\334\031\334\331\330\205\002y\366\301\273\017V\267N<<\365\352\326\275\346\031,\026,\265\241\335s\350\275\270\023\335\311\357\366\377\357\304\037\221\227\001I\344\325\255\372\366\373\3153\315s\017#\257o\237y\370\014\342{\376\205\207\247\377\355\375\033\223fwO\354\236y\210IU\331Ci?P\337b%\252\232\244\264\227w\212Pw:\335\245\235\tL\362\177\333\253^\337\307\273\317\355}\275\177\307\233\310<\214\374k\353\333\346\251\235\023;g\260\236\356o}\276}\356\341)\250q\357\343\037\366_8(Z\324!\337}\327|m\347\314\3169\366\335\307\273\047\274\376\201\375\313^z\302|hY\177\325{\225\261\312\271\004j\273\317\357\335\215V\365\2357\361\223\367S\333\035\307v\031\022\0074g\243\362\233Bg\312\214P\253\350\254\366l\240\263\321\363\033:\277\365\374\216\316\357=?\364\036\332\330\246\274\251\351\247\323\253\276\207\306\331n\346A\"vN\367\3429\376n\257\330~m?\341\230\213\331^\362\251\327\355\344\377\276\231\2637\274\206\036UIj\322\250JuO\242\205\306\3552:\345\236\006:\215\236_\320\371\245\047\212\035#\332;\200\316@\357`xK\370j\013\273\303{\357w{\330\370t7\263\033\246\242\275\016\037\304v\236\331}c/\266\377\367\375\342\376\246\227\206A\343G\357G=\337\270\20791\215\200f\300v\300P#\344\244\257\276\227p}J\327\367{X\337\347\273\237\257_\367\243m\347L\017\207V\001\245vMC!\315\017I\001\265\263\251C2\350}\207\362\036\273\360\013\017nn\237\330>\203,\347\267>\333>\263}\256\235L\276\262\273\3321\035\373=\226M\310c\335\2537P\3555SaZ\306 \205\363\026:\267\314\320H\355\227T\305;\255\365\233\367\317w\273\241~\266;\263w\"$\237\377n^i\346v^\337\375p/\267\377\312\376\352\3013\336\004\264\322\202W\320\372\233\036\376\251:\223\350$]\013\005g\022d\227\314\325r\263_\346\252\2335\370h\255\355\263\316\344\212\211[\310\325\007OI\330R\245\361\251\013\363\037\275\002C%\ruKj\244+\350\254\364\334E\347\256\231\335l\204\327\261\236{\274\377\375\336j\267\305\021\026\304\363\373\023m\267\337yo\036F\033\333UiRH3\177\032m\251\253\332\021\247u3\376\336\373\036\304\021\252\304\177^\375\0134X\235\371\033\007\367\274\3537\036\236z\303{\003\267%\246qm\362?\336\177.\355L\354,b\037`\360\303J\006F\340\232W\373\305\373\345>d\373W\237\036F\202\2324z\032vIs\245\321\227&\272\023\350L\364\316\2403\323\273\210\316bo\031\235\262""\231\341\376\216\316\357\275)\324\\S\221It&#yt\362\221\251HXi{\317\275\345\275u\005wiT\231\203\026W\305\306h\026\345\250\241R\323\244U\007R\232\177C\347\267\3364\242O\343<\372\273\247\330E\237\337\277\355e\240\307\341|W\255\"\222jCc\002\2650Zq!}v\363QK\022\341\325\207:\244\"A\272\003\215\260\244/Q\037\246\022\242\271\006U\325O\350\374\324[D\247\330\273\214\316\262Y\223\370\025\235_{G\260\364F\"It\222\221\034:9Sq?\241\363S\344\016:w\"\353\350\254G~E\347\327\310o\350\374\026\371=r\210\2248\177\241\333#\334\347\273\265\275\260\275\2107\232\003\315\271\235\013\273_\357\315\355\277wp\342\340uUW0k\201\352\202>\255\373\00151\222\020v\020\240i\211\314W\005\351k\321\000\271\272\374\027H\204`V\017\237\316\206\024A\321+\316x30\307\257z\325\337\260\243\236 \031@\215\226\364\361it\246\215>CS\222PE\234\372#Mii\315\213$\302\317\350\374\334{\2477\264 \355\354\365\274\356\364]\237\272a\361\375\007\373l\266\275\346B\375\256cs7\336\200~\330?\321\355\301\023\263\373\346~\261\355\256q\364yZ\341\260\014z?@S\207\362\323\255\314\355\025}\361\027u\2347\367\227\275,t\177\354\373\336\375_\237\254\033i\251\257\333\205l\020%tJf1\243\206N\255\247\216N\275Gv\031Z&\276\201\316\215\336\233\350\334\304et\370\256w\025\235U3\274\305P\320\306\"qt\342\021\032\354n\242s32\217\316|d\t\235\245\3102:\313\221J\344\360\036w\341\203GK\345\007\277mOl\317\202\376\3738\005\376\305^\317\036\024\345\313[?\212\206\367\237f\246\331\330\371rwt\257\261\377\331\301\231\203\013\252F@&\351u\307_1\267\246\237Q\303\223kD\323\276\026Wm\0027\257l\315o_k\026\025\243\247\037\014{\377\202j}x\372\215\355\376\355!7\271l\047\313O\326\337(\317\201\336\326V\246I!k?\323\224\253\250\027\235\366\246A\230\257t{\341\017\263wi\377\2367q\323\273y\253\355l\302\314\031$\312\257\336\257Z\014\320\2022-\231\323v\000\365\025\332\223\242\276BZ\350\332\341y\007^\326\274\265\273\177~\374\224\324>]\010\277{\371\222W\232\177x\352_\336\277\336iF\233\323;\023\302\177X\201\330q\227\346\237\244zX\313\00759\271\203\316\035\243\320\321\032h\014\205A\254""\227\324\2734:i#6\332\032w\251\354\240\230\240\364>\370\260\333\375\341\313\275\227\366\302\366\036\336l\316\354Dv\022\2737\367#\373C\007\347\016\276\364rG\323J\256\3136\341\275\362^\323\032Q}x\261\333\331\372j\357\355\275\260\005\262\267\232\265\235\263;\327w\357\354\237\335\317\037\364\037$\274I\310\323\2547\213\235\323[\321\233\320\324\376I}\267\371\241\261\321\227-\030\205l\266\006\367\373\273\255/`\306\306\017\316\264\2355\235/\034K\225\004\243E\006\312\023M\332\344h\270pH\016/^\352v\305}\275we/l)\341\377vzv\336\331)\357\376\262\377\316\376\374A\364\340\272\227\177b\353\027\357\025\230\325\261\254}\320\346h{\266\371\343n\377\356\340\356\352\223\344\360\354V\322L/\235\367\210y\245\361(\264\241\322:\001Ml\311\032\200&\007\367\321\271\337\363khq\274\274\225\337\376\222j\317\r\324\377\336>\267\375Y\363\314#\243\237{\360\315\326*\024\347\307\375\335n)\337\357\325\302\314\333\274\327/\356\014\354\314\355^\330\373z\177\356\340=/=\341M\334\360n<\261\336\354\275rq\307*\316W?\355v\356\006\367\257\204-\251y\257\177\274\333\263\373\316ny\357\227\203w\016\346\275\334\2447\251g@O\266\237\357\275\362\361\256\355\nz?\230\013\262g\037|\010CS\021\371\276mj\272\235\234N\357\335\330\257\037\234\353\254\265\342Mo\0324\n=\032\371\227\\H\315\227\213\250r\202\334NW\340\306\214X\032jy\361\203\247_ o\036\024\237\270H\344z\211\255~U$4\363\371\025\235_\215\356r\r\235k\275\243\350\214\366\216\365\266,\231\357\276\027\275\240\333er\024\253\317;\336\365[\336-=\264\343\034\320\333\324\273z\324>hE\211\372=\225\tm\010\331u\001\265\326\276\332z_Ho\203\235\177\352%\320\256\001\245\277\014B\326G\236\270\237\360\342\270\356]\277\361\027\024G!t\047\364\221\305\241\367^\272W\034z\261\354\351\026\2076{h\317\224\350\027\357\306m\357\266\326+@\274\351\356A\n=)\300R\241\047+L\022\031\233\350l:\223\017T\234{\243\255-?~\210>eYq\204\315\177\020\2350\206j\013x\230\336\264\265\377B\223?\262\203\261+H-\267\315}\371?\375`T\353\013\217\221\377\265\203h\247eew\262\317z\003d\377\350\303\347!\313\000Gn\007l\013""\347\324\313\336\3130\031mn\354\254v\266M\204n\317\312\345\304)t\246zo\243s\273\367Gt~\354-\364\2066\233\357\267q\263\355\207io\372\372S\226#G20\361\227\224\222\253\0356!c\035):\360W\265$\332\360?\353\235}\2679\321\\\334)\206\264\244\220\215A\030t\n^\001\227\242\274y\230\215\333\251\270\224\2654C\245\2518\2159vyM\r=$dI/\233Dg\322,-\335B\347\026\264\253\320]>=%\213\3024\350\246X\204k\263\360v^\330-\356\326A^T`2\232Ec\315\047+\304\027p\277\203\027#\036\241;\323<\277\203\353\372\270\014\316\326\347\036]\240\2724i\205\216&t\322|\200\346\300\324!\251\030\245Q8\331|\3222\377a;\347\367\321\271\337;\214k\370\303\221qt\306\315\256l*l\223\365\325\255\273\3337ab-\047\314x&4oj\347\227&\366t\\\047\325\3030\255\313Pg n\210\342\":\213\221rD\230;t_&\250\275t/\016ZM\005\365csB\214\224\003\022}v\365\263=c\020\177\327P\022\226j\222\244\004\351\031)D\234\352]@g\301\030\346g\260(2\221,:\331H\001\235\202\331\013\257\242S\215\334C\347^$z\022\327KN\016\2433|r\004\235\221\223\211\223-\255J\006\006\237\262\266r\204\375q\320\332~\362~\322F4+\336J\347V\355\331\306\240\316\377\363NI\261Vb\230\377\317\233mY\211\275\274\273\270\367\363\301\337\017\212\035\321V\336uzkw\262\317\264\025\310\276\\\306\025\331?R\365\337=\350\354\001\207\256e\237\351\352:\373\266\366}\272\352\221j\377d\207\262\377)\3236\272\237\177\245r]l[\000\324SH_\224\213\215\264!Aj#\315K\311>\212\314\264H\225\241}\211\325CD\221\276\r\313\335\010y\371x\t\246\177\342\t\326\251G\214\260OZ\330$\020\250\335\313\355Jy\016Dn\373\320\025%ut\352\276Keh\274mk\363\222\352C\217\251?\026\216\301\230\372\370\226Xz9\235\366v\344A\023\377\215\267\252\320\345\304H^\341C\346\302\362\256\332\311\336\226\006[\205\237\216A\321=\276\001\206^\034\241\235\010i\267B\375\263\375\335\312\320a4\337\333\322N\003\212\356\362\361\\\221\352\274\355B\047\3139tUP\332\312\322D\222\326\242ht\234Bg*2\203\316L\244\206N\315\354\003o\242\263\031\271\367(\023\207\237t_s\007T\216\221\354\376r\357%\357\353QoT\337\300p\350\365p!\207\354At\363\375b=\363\247UCiTOV\022\244\271\310\313Kh\312/7\201\n\350\024\314\275\0034@\222\002#gL\264q\037\272Sw3\022~\256_/\236\027\325I\273\213\307F\235\264\307\345\371\3351\316\334\274\345\311y\220\353\240~\352\2133a\242\253\347\250\264\000#\r\367\311J\205\314S\344\335B\362\260\030\r\244yt\362\341\227A\220~O\333I\241\335g<\022z<\337{\356\215m\224f\21551""\020<\367\350jx\245\271\206\007\233\333\035\023\032\007_xY=\362\351\353\352\360y\206\016\333\006\370\326\030\265Q\274\274\322S^z\035z\304\231\306W{M\242Zx\224\367s\320 A=\203T{\332\265\266\267\260\2654\037X\273{,\313\372\210\233\320\276\265\306C\214\002H\334\322B\230\220\247Y\0134x\312\251\225\335\247S\265@\262\205\226&\311\026#\201N\302mM\037V\031J\016\036\313~\360\303~\317\376\271\220~pi\047\263\323\330\375ro\0240\177\346M\300\034\020T\377yo\036\204\017^\330\343\255\212\013\345I\370\310\363\212\362\034q\350E\0244\244\312\0250Y\023t8\203\364\027\022>v\221\230,\224|e\177ig\302\225\275\332\\<\226e\037\335\177\t\3575\010\224\375\345\235\231\335\310nb\357\346A\344`HM\276a\204\205\351.H}\375\262\224\270b;\364\025By\362V\336\264Mg\224i\021R\216\260n\365\034\325y\271.\326\216Y\230z\334\321\225\275\332\373:\226e?\260\377\366~4\244\354?\332\251\001\346\353{w\016\316\036\344\275l\316\313\001r\300\014\252\r\256\333{uq{o\350s{\362\234V\350\245\002\244\344X\333~\265&I\205NK\0204\350\222\016If`\266\320\325\232\344\017~\231\203o\271\332\262\3370\253\353\316\276\343r\207t\315\366\327\026\216\254t\322\353\010\335\264\317k_\t\225K\362\244}\312\323br\225\270\215\265\241\n:\225H\003\235\206\333\234mm\273\007Uy\217-\350\237?\226\363\205\047\271\\\341\360\355r\371\"\2424\224\047\201F+\374ri_V\032M\314j\350\324z7\321\331t\335\210\036\230\332\212o\237\335F\r\n\361\002\252?\360\007\343VUM_\336\231\333=\267\3739\250QS\007\321?$d\342\211\261\177\004\nB\377\356\360\336\327\373\013\007\023\177H\010\362~\372o\047_\304\"\002\354[\257Cc\304\013\366T@[\213=\214\234z\360\217\007\253\336\213\375\273/\355\366\377\021yi\353\302v\377v\224\300\300\021x^\200\202\005\306\236S\021\352\001\353{\333g\360\355\344\207\247\261\r\342\325\003[\375\336\331w\232c\273\047\376\200Vz]\367\013\305\241\212\333R\370\236\301\226o\323\016\357|\266{\006\227\314\316l\275\n\235\345M\350!y`;\252\312\0018}\017\372\307\031\244\366\351\3263\352x\331\351\027\267z\266\336\335\252o\277\273\275\nqg\325\212\364\347\273oCN\373\367\206\366\317\355\003\367/<(\353\036\010\035\340\342Nl\367\231\2753\336Wc\007\203 \314x\206\236\305\242D#\303\377n\335\330n\340\235\t\370\"4\361\232\330\316l\257b6\246\266\242[\271\355\227u\273\321\301\t\203\246w\353\312\326$\224f?v\303\330\366I\030\033\213\366\375!,\363\213\336\207\337\356M\354\025\335\343\314x\371\242\222\237\220i{\047\342\037\320\201!\303\230\303w\000\003\024\006\326\321U\240x\352\265\355g\232g@\302\002\364\337\333\0376\047\232st=\365\326\254I\375\357\355\377\002\341\271\246j\030u\375aK\362\336\353W\240\321}\261\367\351\376\211}\363\2605@\376\320\022\016r\252\032\304U\225\271\376\255\341\300I\344\306\326\027\320\000FPd\235\331\372\027\326;t\035\342\377\004\262\373\034H\234\030n\245\037\302\302\047P\305#{\361\3753\373\246\020>\301V\027\312\302\010^\337\374\007\261\360\362\326\034T\374Fscg\023\355*\220\235\376\255A\254l\307\302\231\2557\266\243\3339\264\236=\204\205Ow\047v\027\367J\373\375\373\246\223\003\244\005\013\327\266\347\265\244EJ\021\357?\330q\337\333\353\331{\177\377\354\376\004\317\273\255\252\027\267\"[QQ\245\370\2708\260\246Yz\366U\307\010\276M>\254\233<\244Q\222\007""\305\222\222}\247\361\355\367<\224w\034j\341E\034lO\200J\266\272srgj7\n\354\342\373\361ozo\352\307\307\365\023\362Wv\255\244\224tp\047\007\305\241\246\202\2271\"\025l\361\222\312+[\013\320\232 \303\315\311\235\367\261\231\032*(\022O\020\025\250.C\345\305\277\235<\365\277\265\007\003\017\212\346=\372\007\375\017\242\032i\2419\264s\316\373\360\033\354\230\017Ocm]Q=\3438\256\2635\277\337=\327\371\243e\362\342O\371fb\373\207\236\350\362\035\232\001\323\222\333\\\313u\343c\272\216yu7\332y\363i\371\272\230\274hX\316o\355\215zJA!\2732\322L\332\272|\300\231V\037\213c`\375\235_\022\2462\225\007\230h\302J\226\277T\212r\0330\326r\241\367X\3300\026\273`D$_\367\221v\244\264GA\007R\344\312\342pK{\241ca_q\242K\326\025\264\006.7\377\345\343\250\264\370-\327\237\022-\315*Z\335\375\361\024\0176jHn\365\320\313\023\266f6\\\177\320\256 :\304t\177\242\335\315d\226S~\215Q\313\235\345\254\227\205Z\206\214\243\205\213Z\030\013\335\366\224\033E\241\2534\265\360\327\235\264\355\353\323*\003\275\341\353\256\324\342\307\360[\356\376\302\364^\233\357Y[\214P\001-W\005)\327r}{\263\047|\357\366\333m4\177\275\322\2419\343c\276\014\361\330\007\351\317\311\033\313\304Cz\354\256\240\300Mf\335?j\337\306\035\237\241\266\222\264\030Kg\r\350\022\212\021tF\314\331\301\034:9\363\310\033]\333G\217H\3209\021\272<$\206w\326\306N&\321I\236\314\241\223;9\211\316\344\311|\350\035\362\017\276\331\272\337\374z\247\370?e&\037}x\372_[\237\301\020\027p>G\003w\353|\261\335\037\004~\212f\301\366\203\257\267\213\350|\265=\301>\2408\3679\222U6\361\017O?\377\360\352g\273s{\347\320\376\373\177""\332x\233\034u\342\200`\r$c\274h\357\035\325\201\265\255\350V\326\304\254m\rl\315i\344\377|\260\016\215\273\261\375E\263_\005\275\177\276\253,\325\337\333=\261{\346\177Qk\017\215\017\023B\001$\321x\377\341\3517\266?m\236\336\211\356\334\334;\001\275\370\364?\325y\202\313\240\320\275xvkd;\372\360\354Em\030\375\307\213\347w\376\241\214\217\r\273\026\335U\357\375\201\375s\177\376\375o\317\340\351\206S\247=|\366\020\255\232\047\267/\201$<\201X\177\337^hN\356\234{x\366-\325;V\321\220\372\225\355u\264y\205\026}\246\257\371\017\325\357d\364&\250\250\312\372\031\r\231U\311 \343\343x\016\000\217;\304\274\327\310\350\232b\221\205\177m\275\003\363\035\354T\247\224\030Tc\202\252\262S\315\223\315\tm\000\375\2256\256~\370\342\253P^x\222\342\364\231\255\327\264\221\370\366\335\346\304\037\200\260\027\022]\207\216\205\\\275\370\362\3264|\361\263)\200\347\275\347\201O,\203\327T=Pc\373\237\031\347\260\264?\210zQ|`\354\341\251s\3157\025\227\247\336\304\243#o7/\352\320\277\267/\032q\371\326vU\337\366\363\347\263\177{\346\003\274{\372\335\346\217\273_\354\365\357E\377@\022h$\216\366\337o\200\270x\327{\037\364\371\275\321\375\373^6\367\3604\033m0\305\277\225Q9\024\331\371\275\013\373\237\035\274rP\363&\256{\327A\237@M\"\344i[\371^\230\264\211&#\004Z\271\263\353\246\017_\304f\375\t\324\301Y<\0141\205\325\246NE<<\013B_\031\252\377G\037N\371b\353\023\220\261\247\377o{\325\353\373\n\030\372\006\367\225o\250\047\201p\236\201-i\003\372\344\025\224dPd\037^\030\361r \242\265a\001L\253\365\234T\256\306\311cr\326,\360\361\312\343S\240\274\204\213\2020\016\202t\306\311p\007\312\343=\240\n\337\374\033\337\014\332\rm<\240\257\354\235\010+\020}4aq\267\014\232h\376\340\312\301\264\032\237\365\376\277\272\356\007\207\014i\217%\315\276\355X\361x\005\362\031P\276\217\212\001\014\2530^\242~\324\201\002y\037\017\202\274\335\374\020\357\317\332-\206\025\310\027Z\360\005\013D\035\\\333\331\330\335\004]""u\376`\340`QM\364\365.\375=\357\236^\034\227\266S\362h\236]\025\177\274\002\371\034(\237\306\025\006\230\226C\363\200\326Y\354@\201\234\007\341\n2\373\033\310\0304\204\260\002A-\347\\X\201(a\273{j\357\231\375W`\222\2279\330P\313\005z\226b_\316\2266NR\215\260\047/\036\257@\276\000\312\377\301u\n\220\253\320<\2249\365\223\027\310\005\030\240N\275\323\034\337}\r\363\035V _\301H\335\037V \3520\016|\367:\350\365\177?\230\361\322z\321A\317c\354\274M\332\"\311\035\023{\326\366\361J\344K }\021W;@\306C\373P\026\323O^\"\355\215@\321#\014>z[\332\316\354\244\315\220<\226c\047\264\307i\230\371\020\337\254~\257Y\005\215\036\217\260\205\224\3107{Q\230<\205\224H?\016LP\222_\302(\363\236\227\206\231\003p\006\363]\275{l\315\254\245m\217<\211m\347\274\217W$_\003\3551eg\004\223mh\"\270,\3664\313\004WM\237\240HH\222t\275H\376\000!0\264\363\301\256\232\035\304\267^\006]\372\036\252\216o\200\2028\324<\327\201\022\273\210g\367\337\307!xcou?T\366\252#\222a\315\010\317\213\342q\315\004\214\315\237y\0230\373\004\316\027\274\005\2751.\336\233\223\246Kr\235\310\256\233<^\271}\003\364o)3*PY\240o\341:U\007\n\346\022\256\233\234\307\371\365kx\0325\254`\276\333+\356\205\352qx\2125\nm\360:\214\321C^&\347\345\2005\230i\253\347}\230%.\315r\245\255\221\\T\262\006\345\217W8\337\002\017K\312\356\t\324\027hQ\270\250\325\201\302\271\214\263\374\013\336\205\257\367\276\300s\262a\205\363=6\247\260\302\271\212\007Tw\027\367\3120^\347\225\252\t\254\225\275\362\232\267&\214gi7R\032\007\311]gk\010\376x\205\363\035\360p_\031*\201*\003\315\006OUt\240p\256\340\323a\227\274K\203\373_\034\364\037\204\026\316\240:]\034R8J\361\333;\277\177\001;\324\224\032C\265\302k\265]\271\253F\0038\t\"iLl\315/\037\257t\006\200\211o\274)=\204C\375\340\232R\007J\3473\334S\354\367\372Gq\r\nz\306dX\371\014\357\257\036\2046\036%\276\367\026\367\313\007w\275I\335\252\365Pn\307qi\326N}\2124\033i\277gW+\037\257|\206\200\211\373\336M\335\251\240\206\324j\333\023\226\317\351#\250~l\221\215\373\237@\r\014U\214\245\241\264<\344i\215x;\252)nn""\237n\0164\027w\312\273\367\367\257\354O\037\221\264\"\225)T\224\223q\014\255T\312\263\215\326\362\253s\002\355\017\230X}\266\363:.\335\n\025\342\337\264\205\366\250hW\037K{\027\367g\016NyiU!\312\222\274\033+#\367\367\373\217\2646\362\364\007\325v\226I\224ErW\026JN\207\217\034-\227J\236~\371\264\263j\3628\345\323\236h\374f\177\365h\363b\334\374\340\007\034\310TBZo\312\243gv\323\241{S\344\307)\240\366&\311c\341Ck\353i\262]z\224vI4\t\242\251\262<2f\315-\2737c\376\301\373!\213\313\315\335Y}\373\017^\306t\244\0258\030\021\236\276\022\322\316z\2342\330\357\312\212\334\305\375\342\221\326\344\354\n\2454\250\2425\027\232\025\312sZ\366\\K\367\226\347\224\221\375q\030\311\236\376\014\250\235\221l\300\033\0005\035\264\177=\241\267\367\325\036\255\314^h_:\2356\345\201\315E\024\340i\366\006\305i*\311\221\335\350\243%\230\326v\251W\312}%i\210/M\226\351\034<\235\342\241\023S\264qL\347\001\351\200\t\335\374(o\026\244\267\014\350fAz\007\230^@]Eg5RG\247\036iD:*\047\215\306\3663(\013\003\373\213^\022*\366g\357gR\226\250R\241\312\363]SQ\306\360\365\311\243h)z\200\221\r_\036{\243q\206\304\003MK\250\332\354\201\331\356),Pb C\360\314z\327\n-\241\354\035\217Tlw\275\273\272[\206\032\351\320\274N\036\201\240\"#\023\t{\312\347X\226\\{\353\271\267\320|I\275yr\264\265n=\026\221R\023j\341C2W\236n\240\231\033\211\n{\341@\027\027\302\037\267\004_h_g\336T<\334xx\232=\355#\304-\203?R\243\326\235\231z\26149v\357\346\340B\260\274\216\213\332\"M\211\3510\266\224\301\362f\001\3714!]\273+\337\334\264\017\342ue\211\242\nm\357%\\\310\322\372\r\2144\270NGU\006\237\254`\2031\332\016\t0\352\1774\325\047k$\032?\354C+]Z6\372\006\227\007\240\223\342\211\t\256iH3N\252\025\247\232\212\265\246\2434\004a\335!/>\240)\024\255+Q\235\323\245(t\271\201\274\250\203\356\360\245\312\246\353\335\345\263\207\364\340\033=\0274\207\316\234\261\324\"\023\255\337\321\371=\022E\243\254\350\311\201\223\335_\271\342-\201\2444i\272\224wj\341\366(\324\221\353\376\010\2032\355C`\021\232\365\000\252{""\247\327=\242\266\0371\204\323\344\220\2541\344\333\243\362B\013\371\\9Y\347\221\222E=[\276\250@W\000\223\221\036U=\275\021M\317\314\223u^\031\235r\344\347HGG\265V\325\013\003\312\315\343\246I\311\031\226\274\344-\250\362\3426\271\003F}\223\344$)\005t\026_\276.C\227\036X}\260\263\023/#\032\357@+\312\354o\034\240Y\371\207\361\375\211n\031\220\334?\350?\222\t\tW\335\244\366NSW\332\260 9(\257\233\260W\270u\317\232\344\342\343\224U{\242\357\371\375#hB\330\247\3156\267\354\3264l\320B\252\274?\311\036d\352\232\350\273t\271K\013\247\321\016,\225>\236\345\226\274\234\207\266\262iVC\375\231n} \275G>\341M3\272\273\275Ow\r\024+\342\277\315o\261 \236\252\341\366\251\277\306,\367\3201\346\306\016\212\271K0\306@\354\364\221\313\245ss\231\r\271a\244\325=\271/+/\215\242\006I\275\2304\027Z\016\266\047\362\272\320\231\251\304\216,\354N\267\333\212\336\360\351ym+3\374\254\310\2217li\206N\373\0374w\241\033\361\355\253\223\335\234\212\034\340\021\246\313R}\356k>\257\037\250xs{\272\331N\t\267\0470\257\341\356\345\033\333\337\321\241\320\323\377\306#f\\\321\t\023\222P\300\372\006Jh\235\372\006Jj\235\241\013\307\362$\264\324\031C\013\227.\326\222O\232\323\036\223\275\363\251\013rr~gx\367\373\375\213(\230tk\377\021\252\341\343\376\307\256\204\216\037\373\201\026\243\357e\276\343\335\201QJ\017Q\362\n\0109\035\224\327\\\223(\240\013\266\354M\314]\020\014\371\235\317w\317=q\341u\366D\014\3645}\0250\264[m\013D\232\243\334a\223\257;\310;\254i\273\210J\316^\376\333\205]""\371\316\024`\207\317\213\264\354\366r4\242\021\233$\254\27479tw#\326\333\005\003\231\316\224`\247\317\227\000\217\372BY\320y\264\275\025\215N\362fB9c\224\027\"w\324\372\364\360\235\267\016\224\341\351#tc\276\353\246\256>>\207b\263\273]\23260\251\030i8\242E\371\320\213\274\355\335\307\035\355\365\335\031\200\216bI\315n\206\010)\374\260\335-\340]\337\370\r\315Yo\244\321f\247\274=\226\212\235\244\202\274\257>\264-\223\026\020\372(\200\275M\275\013[VX\372\337\300\230v\005m\234q;\343\311\n\377\205#H\217\366\367\233\273%UBM\260\345\235\021\241\212\030=\360\035\303\025\372\230\331o\316\243\2237;\221\327#\335X\234\n\364\025}>D\334\214i\227<\260&\207\366\213\335\327\344\332_\230>L\227\223\366\001\362Y4y1\255|\346\306>+\332M\225nx\177\365I\312\261\303F\203\300\247\276\271\363g\357g|\035GY\236\222\265\305_T\214\207\332\023v\252\030;m\233\372\250\241T\216\241\362\262\047\022!4\224\322E\353\264\277D+`\311\256*\311\303\336\260\236Iw\275Y~s\260\332\271\206)\047\306\362\332X\262\250\"AL\n\t\331\377\320\374\370zW\333g\342\340\314\223\224g\273{T\023m\256\351@\345\353\327rp\3552\304rCj\031\362B\336\247\277\236#\313\362\312\047\254$\337n^\322w\325\374eK\010\307j\026\374\2101\347\313\335\350\023\027`\207\357\221\000\031t\254\246p\207\236\243\261%x\315\273\246\365\247\307\354\322/\266\253\315\376x\360-^\256$TZ\266\365r\232\036\344\335\300\313\177\230\377\261\324[\262\350\221\357%\312w\000\251\250iH\047\205V>\346FS\013Rh\311\314\252\r#v\272\366\254\201N#r\027\235\273\221\037\320\246\356\207\223\tt\022\047\247\320\231:y\033\235\333\047\013\350\024N\376t\362\251\350\303\320\307\327\275uP\211\305%\253\244\014\311\333\032\244Qt\003\325\345O\256\262\246\302vB:)\375\317\264/\373\217\325\272\323#\204\376W\273\023T\200VT1\231u]\027\315\323(\300\1770\345\356\377\235\002\234\332It\240\000;\"\364\337\347K\237\372q\"\264n\0161\361\224O\364\321~\234<5N\313\356Tt\3669\242.\010}[\202\t/\201\367\252\263\236\214%\202\327\366u\270\047\277\261?\032\256\030\207\367\346pi.\327\213\344tM\312v\232i\320b\005""\251p\364r\005\351\310S\335\351\333_\357\342\326\334\047\023\336\204VBi7\221\252\230L\266i\010\271\215#\302\355\310\217\221\047\321\243\3334i\367\206A3\251`\031\031\275\230\014\266\250\r\272\003\032\355k9\207.\356\321\230K\031\247\2113\331-\223Q\3220\346\1778b\213\001\273\2063J\306e\300\310\006:\033\306\020}\004\235\021ssh\032\235\364\311\211\223]Q\213\264f~\365S&Z\330(\327\236\214\351\210f\276~\\G\271C5\363\251\235k\252\047\\\035;\210>\311\ni{\315\373[<\254\315\027\250_\335\372\215\256\334\rnX\037\2515S\331\312\227\244\34539T\250\244\245\323z\006)\222\241\217\003\207\032\366\374\216\316\357F\255\354\350:iHK\377\343\324\273ZX\371.\264\200\257\267\363x\313l\2535o}R\264\356\325\305\323\017\003\250\021~z\355\340\\\367\027P_\010_\261jw\001U\336\326v,\027P?\205\251\030\360\256\207>\032?\234\261qH\001\213\t/r\322\251]\237\257\366\247\016\256)s\031\264\300\222\323\264\300\335p\217\354V\346\020\246\274,\234\206\013\252\020y\235\016I-\032\315\251\354iqK\276\211d\237\370R]*\212\375%jN\005\320\331\227\233\350\3344\243\215\274\240z\035\235\365\310\257\350\374jN?\375p\262+{H\361\335\327\367.\343\361mh\003\240|A\021\341\221E\250\367\317\277\350D\345v\372j]\3372\245\336>\221\257P\323\242%\251\270\244\333\312\033\307\345\265\357\362\264\007)d\264\211DF=\205\356\254]~\272\373\314\336\231N\226uW\355w\264\271\275|\211\232v\200H.\320\270$\007$y\275;)\301\264BL\233\246\244\210\321\270\364Sw\304Y\307\013\273\343\253\006n\305\330\314X7\316\262k""\235\375\243\203\377\250\261W+\304x\317k\047+\353i\231\341ue0h\243\266hJFK~Ti\327\"]\233a]\304#x9/wC\275\312\206\017\367v\254\266\376R\273\275n\210\271P\013J\232J\337G\347~/UX\n\235Td\002\235\t3\243\246\033DV\320Y1\333\234\264p\273\331%\323\276\320\016\251\347\2464\350\222\034\242AW\336\000]\300\345\252\317\307\275q\335r:\322$\332\264\017\372\372\240x\224V\321\371\t\271\334l\242\366 \337R\247i\0135\213\303V+\351\372\205\303VX\250Y\334G\347~d\000\327\354\007N\322\023`\361\223\035\235\344w\262q$\275$\314W\360E\203\247:\032\233\353gn?\306\3752O8*\323pL\313\3304\251\"\001o\027e\324\334\212Z\304]t\356\032\tA\027r\220\235o\022\235\244\261\207\230Eg\326l\355\320\335~K\335\033\252Q\267\255\251\233\341\241(\361\260>\326\350\004^x\322\231\272<\312\241u\336\277\335\256\304a\347\327\201a\350\332 \361\241w\353\313U\250\022\251[\223\264\247\336M\273\241d\320F\026\032\366\350\226\332\324\2637y(\241O37\232@\254\240\263b\352\222.\330\222\227\253tt/\242\325\341xV}\336W\327\016.\252\231\267n\321\370\262\027U\240~\265\242#ux\264{r\304\312w@\353\352\374\342\022)\305\326\010@\255\227\322\252\022uM\232z\313{\277hg\231\372\344\020\326\325\220\031\265\257\243s\335\274\320HWA\315t\343\312\234C\026\271\277H{i\324\306\236\352\272\311\267\007\317\3435\236]^\325\255\207\307\336/m[\177\010]\010\227\222\213\226\260h\327\201&\210?\243\363\263\271\257f\271\273{\020_\302\204J\277\315\362\024\247\353\337\341eA\323\217\272)\250\2232\210&}\362ff\262\177\242\005rym$\031\265\322\313\276\244\326\323d\235\326T\350e\337[\350\334\202\001\003\047\371f\322W\352\336\014\376C\034z\263^\026R@\313\304G:\\5\266\276d\373I*\265\275\035\217\313\007/xy\030\333\361\315\263GUm\0077B\244e\233\324\345\332\277\002\224\352\222\356\376\244*\235Gg>RE\247\332\331\275\360G\234f=\274\236Q.\230\245t{\336\240C\323""\365v\205g\305\313Y\363\007\366xw+\177\327\244\253\\w;\262\r\004\315\307\250\372I\225\0473u\232\226\221)\004\335\265\276\206\316\232\251~2\274\033Cg\354d\006\235\214{\271\273k\363\270\367\241\355d\360\r+\275\024\006*$\310\302\roCw\032*<{\257\0274\233\257`\006\205\357\336vH \264\371\354_\365\240\020\230\261\007\337\232\n}\007\020\344\210\317l\230Vr\344\n\005\031\021S\047 \243|:+\322\215\t;-\341\320\274\275\204N\t\304Dg\237\036|\324\214\375[\337\215\261\217\250\322\351\235\251\335v\324\246~\374\340\242w1\272\377\332\301\231\203\320\261{`\377\\\253\203|j\313\004\246\375\257\343\"m^\3115\220\350\272\016A\234\257{\353zl\242\2258\371\022&ItZh\242);up\262u\242\3459i\362D\263\007\2326P\257\267\027\335\250^O\267\376\322:mG\247\354Q\310\354E5\243\325\047\233\364\r\353N\305\372l\367e\350\312x\321\323\367?\034ZK\276\271Ebw\342\370\033\330\220\031m\350\233\201\362d|\373\312\026\255\262\320M\354Ts\321H\227\364\337\177\354\336\333?\343\257\234\016\365\245N[\232\005\353\206\366;\344\272-\211CZ\372\"\005\211\316r\322\375\021\362\366\016\271\276M\333\036\324\253h6B22t\035\345\327\356\030\243\265\3508\035\252\233\216w\234\340z\326a\273\016\207\275\010&W)\377\242\225\222Gt\034V9y|o\244\343\202\255\253\007\364\333\231X\320\276P\350\255\306d\257I\047\004\310P\223,Ph\267\227\264N\022m\244[\320\004\222\026\036i\322A\272E*\322%[,+\341\240\242\364\373\242\035\255\253\323G\275\272\261\373;7G\036\225h8\222uF3\005\022y\244\017\322\244\237\266xI\037\244\245c\322\007\227\320Y2[\274\277\241\363\2339\327\032\355\326l\340\325\275g\365S\2730O\324\213\353PXx\363:T|t\240\363\342\263\375\227\255\003\226\360\255vu\200a}vB<\251s\230\246O\322\223\3064Z\002\240\241M^\220Hz?-\264Y\273^\265\316I\322\223\352\231\324\016\322\373\251\247\016G\272q\3271\227\242\335\250\2436U\371\376\220:\372K\364x\032\324h\366nM\370\224\376Az|\350\016\334\023>o\320\276\002\337\215J\372\004O\223^\366.\307\361-\220\203\320\235\266\330~\024\357\371\010T\22220\336\373b\377K\354F\323\312XQo\346C7\302\243\353\37454\322>\250\033Q\r\221""\255%-\245\220\022B\335\210j\210\266\275i\253\224\326\325\244\366.\347]RC\244nD5\344^&z\254\212\032\204\234\216\251\305_\275\332\201;\237O\257\242\256\356\366?<\365\221\367\3210\336\347\016\003YXM\305\367\047P!\t\324\2242N\333\033\331O\34011m\265\243wnk^m\303\333\320\333\330\244.\322P&\037\201\246\265\\\332\312!\201G\253\331\244\214\320\006\203\034\330\250\212H5\221\013bR]\014\275\260!\371\2305\025\203\234\336R\226\277z \322\213NO\253\246>\305T\037{\037\047\016^\363&2^&\033VUC\373\305\375\260\321I\2316\357M\357_?\230W\346q06A\036 \003x\250\317\334\217&\327\326hP\242\336DcS\033\357\343\320\3319\232\022\267\241>\312}\353\316\250\217q\310\351\222Z?\204!X\357\250TC\253\352\217S\247\037\\\333Zn~\206\326\341\247\037\214o\237\305\213\252\021V\336^mF\232\321?\377\376\267g\236\177\220\332\376\2629\264sN\005\274\323om\3174O\341f\320i\210\350G$/nE\266\024\023W\037\254o\025\267\326\201\335\323g\266^\333>\003\216w\346\\\363\014|\371\374K[\377\327|n\247\037c\336\332\376e\347\034z\336\330\036\205)\001&z\273yN\047zm\373\377vN\354\234\335\231\300\340\231\255\223[\371\355\376\355x\363\345\346\334\3169\370\372\305W\275W\321 \375,\3143\213\017_|s;\327<\323<\207\305tuk\325{\355\374N/$:\013M\303{\375C\357\303\341\375\325\203\023\017_|y\353\026\244\272\214\227e\237\301\203\237\270i\021\331\211\266\246\200\352L\014t\3603\214\302\313[7\233\047\232o\241\206KH\336o6v\3725\327*|a\347\r4\226x1\024%\032;\276\203\245\376\360\305\267\266\347\232\347\232\375\210rr\373\334\366\367\220\346\373\275w\224f\005\240\351\355\tl\370\226\312\005,\014\254=U_]x\216\266\375\247hAJ\243|\366\226\2056G\302\215z\214}a\262[\017\317\376\321\2257$\332\177?B\337\244n_\206\241\351&\211\rZ\t\260\017\304t\353\265\210?\272\362>N\373w\311\203hA\241\342U\365\252\010m\323\206\252\214S]{\373\346\217\256<^\335\376\303\3250\206\340\334\333[\321\013\017\264`G\233\324\324\004\354\251\353n=S}\344Bhk\037\277]\303!4R\366J\372\261\n1{\010UJ\257\367t\301\302\347\361J\241\275\271\356Q\036\340\201\211\024> \242\356\217\223\272\004\365""\007R\"\354e\025]{j\347\310\205q\031\007\230\013\336\205\377\257\272k\351j\343J\302\301\02216\022\226\220@\304\340\20706`\222\330\" \234\307\330&\030;\223\304\311\341\340\307I\234,8\016\031\373\330\311\031\034\0366\361Lf\251e/\357\262\227\275\354\245\226Zzy\227Z\366O\310O\230\252\352O\262.\264\225\006\272e\262\022\264\324\257z\335\272U\365U}J\033\217R-\320D^\253\006\232\310\031\"\305\222\373\250\372\230\324\342\236\030mz*\242\004y\362\315\241\345X&`\034\240\027\010d7;\302\355\217\030W\351\306/\365\262\277P\220 r*\375\240\304\270\304>\352E}\361\037\3440\222\347\037D\214\353\265@S9\313\246\325}^}A\352\361\263\030o\177\264\014\017U\325\233>L\016\313\005\214\004\324\003\"\321\254\306\336\0371\256\321\215S\222S KAb\341\327\034v\206\030\273\\\356=\320\002\376\303\341\246E\330\341!\346h\226\320\363\225\350\021\311\202\032\203\322\020$\013\3343\232\203\273#\235a\021nj\022Oc\3313\001\303\325\026\030\325\306\255\265\344\355\212\nX\361\365#\236R%-\250\314mw\240d\231\243\273\003[\336\337J\304\221\375\177\344\374R\375\254\366L\366\261\006\021\343\031\304p\3601\014PS\263\225g\210\370\322\213#1\316_\360:XP\032s1i\210\016KH\024\242\032\276\031\370\216\263|\324\353`\265z\334e\352\235n\230\027\256\"\335\353 \316\274#(\363N7\355\016\t/\367\"\317cG\030U\3313\264\021\253X\340\2206$b\232\215\r%j\214\370>\202\307\346\340T\014nA\221N39\032S\037\"$\255\243\347G\224\301\215=\243\230\340O\230m\203\221\0313\347\332\243\264\240\331^]*\014\000\020@\030?\322\001\230\177\331>\247\rC\366\001\212\351\220!\nQ&\212\364$,\020Jo\240\016\310Kb)Ez\262\231\374\212\313\020\t\022\306{;\005Oo\277\334)\004(\023\310\030`3\233u\335\361\3269E\317\220\220{\304]\333\3457\364\330\t\326\200v\036O\273\271\355f\205\023\\K\230!,\314(\2426\373Y \375\213\204\325V<\375wbdJ\344\206)\270~\275]\353\243v3\245M\024:Pd\340\007\314\024\212[\2209\004l\017\253\003\272\215<\217\311v\305\310\227\320\361\200\235\332\362&\\A0\206\274\235\347\212\214.\214\027\364\004\016lx@2\026\357@`\371\213\210\203\010\035\340K\330\330\370\241\250""\002\303\376\315\304\202\230\355]\340\336BQ\200\373\333N\304\\\376\025=_\302\206\351w\361%0J\357\357\244IYh\2617R\231\355z.`\333\201U\036\212\202\305\036!\0130\004(d\263H\017\355\222`\307\314\372/T\027\375\236\210#\025\020+_\242\r\222\373}\365HY6\364\206\221]\r\314\263\303\t\303\016\034\273\017(\n\266\203\300\321\231\260p0\004\270\000s\234\047v\037P\024\324\022\275L\304\021\211\217\225/\227\371\310\224\236\272V}\316u A|\231\257e\003\370Rf\010G\265\247v\214|\261M\331>5\0074\220\262l\352M#\341\033\230\372Gb\013\033\022\370aP\024\224+#^\037\002\250\001\3478R\240\306uz\273\021\361\372\375I(\234\264\353\020_\302\325\260\036\226\n\326v \r\304O\"\005i\204.]\215\2361\323\274\341\377@\177\260P\273\362\252\364*p\201Y\010,-\226\036\304\325\211\332$\273c\367%\356\351\367?!w\214\361\253\262{1\363Z\201e\022\300g\300M\206;\006u\301\356\005[Js/iV\031\303\035C\227\005\263\316\016\245\340\177\354\2239\237\373\005\371~P\327\017\365?\355\020s\302\025\025\037\246\222b\204\034\233Q\336V<\006\002]\360\311\2402\200\322\\\217\273\226\330{[\205\304\207\251\214\270\035j\023\033\377HQ\233\241\353\207\275\267V<|\230J\207\021\2271\213\275\315q\323\201\035L>\217\277f8j\366\2249\310_\322\245\257^]\321\313\264i\274\033\304\236[\201\225\335\322s\264\372\250\366\230\3754\177OF\217\357\373i\333z\333h\244\004w\000~\032\324\306\234\254e\016\375\203\332`_c\002\003\021\2371\013\274\315 &\3744\250\r\340-\013\373d\317Mz\305\227\022\344 \037\332\357\273\375\357N\260\047\0236\333\325\332\244\327\030K\324\322-fw\033\271\316b\242\003\321\2670\200\330\232\006f\304\260<\231\275\345\320\001\024pA\364\226\303\014\257g\374\361\254\001\027\334\346\217\355$:\200\336\346\217\333\321\216\301\374\213\356\2407\335\363\222\n\372Z\026\177r^H\206\210\272A3\203M\267\014\2445W~3\313h\016\013\202\3612\233$\377\2300\304r\317\2233#\316r\004O\275\202\r\307\373\303\001\n\261Y\330:\022K\216B\006fz\007\030\366\030\001\321Z\307\260\375\r\210\206\021\217^\334#F\017:`\324\034\355\010g.\304\316\347\371\221\370&\213zq\217\374;\350\300""\277N\023-\314\244?/\335\307\rn\377`*1\366\211^\262\337z_\255(Z\206\377\354y\347X\026\260(\335{J\335\267\005\031t\\\025\325\254}\202AD9kV\245I\323K\036\376\274\353\024\215\363R\225\257\031\320\324\353\226\031\224\220\265F\324\222z\342d\365E\311V\t:H\232\353\376\312\253xZ\247O\253\025\343\374\276\312\023\005X\327\000#\262NT\326\254\264\272\243\213~\023\014\037Q\324\362{\306-1\304i\230\331\302oT\266rt<\225\267\026\325\260=o?\360\305b\347i\203\326\n\303\310nY%\276\305:\321pU\225\352\231!\225\324#\214\233\330poJ\033\177bCY\025\354\256z\376=\271\334\035\362\020\246\310\363\313\217\332\305zv\300ZV\335j\251\201\325\032\263W\030\2141\310y\241\006N\352*\2350\356\016\372\320\215\336\212\304!\262rO\277\031\031_\260\310\200\255%>\370\233U\244\373\365\363\243\344\255\005\"\324w\362,\363|\373l=_\260\236\321\227\0371\263\352Cg\355\244\036+K\263\362\031A\214\r\r\253\262]p\272\352#E!\307\003\231\347:_\037!\367\205\357=k%\374\327]\303\303\351\341)g\306iB\331\210@\244\030\047*?Y\023j\202<\2445_@\266UV\235W\"&c\304\274\265\0061\351\267\031\242\334\025\022\215.;\273\363\300\031\267\233U\264\365`\267\215\003;Y\375\215\177}fu\237Z\265?#\225\356\225\271.\270S\n\247x=\364\240\334\261a\235sp\251\312B\345?\352\237$K\253\014\320\313[7\364\220@^^3\377{1\016t\341M\353\236\036\236v\317\271\367\252e\306\307\371\216\3369n\366P\2606\365\2519\367\267\352\205\332\273\264\231\312\370] \226\231]\307\304\021d\375\357\362Rg\371-w<\321\027\214\004$Y/\271\363\276\350\025\364\320,7\213g\2519i\317:G\235\337\253\023\265b=\235\263\346$\243\321\370j\216\204\242\340\213\004\013\354\242\312\251/\351\305\266x\020f\216\270D\307?\261\226\254\177)\271\330\034\tR\211\t\366\230\310\237J\263\356/\022\213o\220l\223d\321\363\364\275\326[\342\330\006+@Fg\350\221\371\244U\242\376\034\211\353\033\270\tM_t\210.\047_k:\323\360\224\275\322\220\312Y\225`\251\364;c?$\362\2159?\223\335\314\300S\036p~\021\216M^\242s\047Kn\236\250\220>\243\266\2047\255\227}\303\325\212\273\257t\331M\322\r\350\355\311\276Y\233j\231\350?@\277-\270]-/""\354\365\014\253i\365\003\235\365\244\232\255N\t\352y\344\254\335\347\254\272\237VWk%^\031\246\355e\247\333\371\201\276\037\225a\017c\023\364\357]W\220\241,\233%\246[\301\022\047o\306\217\342\212\266$\255\033\352\270]\264g\210\307IG,a\202X1i\227\310,\nvs\233\224\236\365$?\340eH=\211\336\272\310\201\253\013\244\377\205!\262\330\372$\357\000I1Kd\254\207\230k\214\312$K.\027\361^[YR\367/I\2557\354o\271~|\334\336pn\223\375\024\n\256\004~\371^\255\350\245\030\313I\n\314\252\306\222\364Qe\245\362_\"TB\236\220%\240(\367K\t\316\224INO\221\316X]\326i\265\256\317\261E\0263\263\246\336U\017\355\274\250\013\321\334\275\303\246\273_\367s\236\201\336\223\351\223aq\310\252\"\313\315$_G\264\203\3560j\217\332_8My\363\321\251)V\313\006\370\024\246h7\000\265\345wl=\247\234%\375\341u\323r~\310*\302\366\271D<\237n\021rV\216_\371%\211\264\314\230\243\326\272\036&cH\317\253s\347\375\365rH\270w\225\314\177\236\301\253\343\316\010\221\t\177\372/\306,;\312\352\335\220\313\253v\216\2311\240\007\316\313\203I\203\030\226\3235/3(\360\342\256\372\245\262\373P\332\213\036yU\254\177\374I\375\362\214\273(\003\326\3046|c\025Y8Sl\351\233\014\350I\351\224,\327\362*\372\235\254\225\255\047\273\211\006\307{\353=9\353\032\375$y\364\177\353\025\321{\241M\037+\356SQ\373d\267\034\025\377\343\264z\312\030\344S\r\264-\255\236\262\236\323\352\240\223t\264e\205c\342\047xBl\2775.\234\243?F\255[jF\237\341\n\221q\342q\256`m\251\307\3666\033\221\272\254\206\037\323C\212\271\274\257\346\033\374\033\364M\\c\265\246\317\312]\253\250s\347X1\376\017\372\226C\352"; + PyObject *data = __Pyx_DecompressString(cstring, 29526, 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 (36761 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\377RR)Bad O\372\262\210\002 \025\001BAD_O_BJECT\025\002P\243\214\005\376\024\006PARAM)B\377ull/Bear\377 Pattern\373 (\n\001ish <\377 0, Neut\037ral =\t\001)\001\026\001\177> 0)Can\232A\217mix \204\214\003\306\213\002\247\214\003D\377ashed LiOneDoS\000\003\005u\202!\337Expon\325 ia\357l Mo\251\215\002AveR\352 e\000\027\247\207\006N\216`F\261\217\002\376\371\001FUNC_NO\377T_FOUND)\334\315\207\006\336Aa s\304@amn\235\217\001API\016\013n \206L\365G\305a P\013GROU%PT\010H\250 \243\014I\331\216\002\221\001\346\232@ I\364\213\010\230AINP\363UT\233\002\243@_INI\377TIALIZE)\3762\002s:Insufofici\343` H\313\205\003\376\267BINSUFFI\377CIENT_HI\237STORY2\000\233Aa\373l \363GINTER7NAL\374AORT\000\375\207\002\237 Hand\354`}\003V\377ALID_HAN\367DLE\031\006List\277 Type \031\tL\036g\000_TYP\036\007\254g\251\212\006\364J\t\276b_\202ATION\374w\006\342gHolder\375 \"\017HOLDER\300\030\027\213\016e\0031\003\226\013\234\215\007va\367lue\311\222\002Kauf\377man Adap\357tive\332lLibqr\270\216\001\312a\245MLIB\316b\336\244HMESA3\025MF\367I\047s\276m was\277 retir\343\223\002 \367TA-p\000 C.N\275o\344\204\014 (id\210\205\001t\277y)None\333\204\001S\037uppor\351\211\001\334\206\001\332\204\001\377SUPPORTE\375D!\000t enou#gh\217\211\005\213\225\001\327\222\001 \350\204\005\247w\336\256\221\004Reco\354\205\001bl\377e: colle\177ct more\326\212\003\376\215\223\001try aga\363in\256\000h\006pric\337e arg\377\216\002s:\275 ""\214\213\006Note\301\212\003C\374\336\226\002\356\211\003libera\357tely\206\206\001ict\373er\350\212\001n PEP\317-484\357\214\004\344\221\001s \327sub\303\222\002e\231\225\002bu\377iltin ty\373pe\300\225\001f you\344\272\213\002\372\226\001p\354\222\001&\010theIn\253\224\002\243\224\001\047\222\210\002\235\220\002_<\000\277ing\047 d\205@c\376\202bto Fals\377e.Out-of\373-R\240\213\001 End \337Index\264\211\002OU\377T_OF_RAN\377GE_END_I\337NDEX)%\nSt\367art\034\025STARAT,\007\300\227\001\212\207\025i\000\214\207\024O\210\220\002\374\301\221\005\230\215\001or infz\337\224\001e\017\013nega\341\204\001\336%\013posi\004\017ze\323roT\004\217\232\002c\246\207\002st\347ick\r\007\224\225\005 (n\377ullable)\316\022\010ver\253\227\004?\007pa\377th-depen\374\312\204\001\265\004scale ?same a\375\226\004\320\003\343s:\205\214\006\007\001\357\213\005ool\377)STOCHRSAI\203\21569\000\265\215\004C\000\262\215\007S\256\233\001\376\367\206\rStrengt\375h\361\214\007[-200.\377.-100] =\335 \203\215\004, [\016\001..r\020\002G\244\233\003\023\0070 =\237\215\005\360\047\000<\0007\004 \006ulli\203shC\000T\000]\001V\002\017\003)\202\224\207\004i\217\220\001\366\234\001\267\230\007\372\232\002\220\234\004s\247 ch\246\204\002\310\235\001n\244\225\003e\277ssThe \303\225\005\047\377s Own De\337fault\313\215\014To\347o m\326\221\001\253\206\027Tri\177angular,\r\277riple \235\216\027T\276\033\003Gener\366\231\004D}o\314\216\034Unkno\254\000\370\304\220\002\000\n\270\220\002UNKNO\313WN\323\220\002V\322\212\001\313\211\001pr\353es\246\215\001a\274\234\001er \337limit\014\017n \371u\331\237\002\032\002Weigh\354\265\224\001\334\217\013Wi\224\214\001\047s \355S\254\222\002ed\373\217\014Zer_o-Lag\333\030[\261\231\n\377]]add_no\377tebegidx\277 nbele\273\223\001c\320\242\221\003\271D\203\213\004\316Fo\303\001fe\337cycle\335\227\001le\210\235\227\004\217\240\001\273\220\002s\334\227\003\273\210\002E\004p\377ickle %s\365:\354\212\007h\356\216\003poin\206\204\235\002to\253\234\002\362\213\005\252 \356\214\002,""\356\354\236\002doe\352ccro\275s\336\230\001proc\315` \335b\215\242\001ary\256\004sh\270\374\240\001\244A\273\214\004whi\204\033d\333is\254\207\001en\262\207\001gc\362\254\237\002 \207\240\003\363\225\001wron\377g dimens\344\234\242\001\024\tl\207\206\002\351\003dif\007fer\241\223\001\272\241\002\310\240\003\212\213\001\215\227\005yd\334bY\003must\257\240\001\003a \275\241\002h\004\271\241\002\266\241\003\330\233\002\251\241\002\377 Series,\255 \325\227\001%s\304\240\t \344\235\007m{is\323\243\002requ\276\216\002^\377\242\001 key\225\244\001g\314\220\001\270\345\217\002\224C\250\207\001, 0\275\234\0011\33700)is\366\003dn\315o\262\230\005: \276\240\006\204$is\277 empty\355\242\002.\377_core.mu\347lti\260\242\004\272\231\003to \363im\207\217\001\033\tumat\367h f\023\014tali\203b.\306\216\004\365\244\001\013\003\315\243\002\026\003o\013rd\316 d\360\243\001\047\003\321\243\003\005\004\334\306\243\002?\003sysH\003thgrea\242\232\001W\003wa\273\235\002\366\027\003/_\245\246\005.pxizy\002/\304\000mmon\006\010@\203\246\001\025\010\212\226\003,\002\207\210\005\225hs\227\231\r\377\047ACACCBA\327NDS\000\005_\256\212\001am\362\000\014.\327\244\001\255\240\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\270\233\001\004\274\233\001q\006X\022\026\031\007\255\024\265\006\316\023\277LLAOAO\317%O^\363\023POAP\033\006P\016\024\037ROONA\001\001\213!\001\004\300\247E\001\013\240L5\001\035\t\3673SI\303NA\001\000\371E\001\007\356LTA\303NA\001\000\241e\001\007\030\rRA\365T\202FT\3644VGDE\303VA\001\002\362e\001\t\351lVG?PRICEA\001\004(\007\\\022\002\316sllC\247\232\002S\370\253\003\203sB\352\204\002\000\003\346\204\004\000\n\335\204\013B\207ETA\000\001\"\005\014\000\266\204\022B\263OP\000\000H\005OP\017\023o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\200\206\004\000\007\364\205\013C\377DL2CROWS\340\000\006)\005\021\005\334\205\0224\0003BL\007ACK4\005\003\0107\007\003\017l""\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\272\227\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\210\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?\010<\004\017\331nBELT\311\237\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\245\243\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\263\235\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\211\240\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\272\255\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENTICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\217\252\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010""\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\375\260\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\320\271\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\264\270\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\037MFCMF\330\240\005\001\006\025\r\237OCMOU\000\001!\006O\315U\276\240\023MO\031\007\340\240\023OP\301P\200\235\001\001\003\322\241\005\001\n\317\241\014OR\017RELC\001\002&\006\017\001H\024\237SCOSH\000\001S\006S\361H\023\025\031\007\214\242\023UMSU\303MC\001\002\374\242\005\001\t\370\242\014VI\007CVI\244\243\005\001\006\235\243\014\363\244\t\215\300\001\377DEFAULTD\207EMA\000\001\353\252\004\000\010\340\252\013D\377ISABLEDD\263IV\000\000&\005IV\276\252\022D\177ONCHIAN\000\005\270U\005\020\004\036\023POD\365\250\006D^\347\250\024DXDX\242\005Xe\023~\266\322\005DotEFI\000\000\300\305\254\004\000\007\271\254\013\375\000\200 \035\005MA>\217\254\022ERERI\000\000D\005\343RI\020\024\030\0061\023XPE\361X\216\247\005\000\007\202""\014qual\037FLOOR\000\002\204\256\004\000\t\276\372\255\013FOSCF\215\255\007F\376\376\254\025FRACTALp\000\004O\005\017\003\204\256\022Far\267\317\005n\277\317\005.__\317\323\001__\001\r\374\201\327\005\035\theck_o\343pt\307\324\004\260\303\002>\010get`\003\030\336\323\001Z\n\215\325\003\227\301\002_s\330\263\002\322\232\314\002s\220\010\262\312\001l\240\010re\333pr\236\nst\002\013un\361i\255\315\001\304\010\257\322\006flag\000R\007\250\001\210\326\t\207&\017\007\263\325\002\013\n\253\330\007\370\266&\335\321\001\303&lookb\047ack\324&\222\321\003_m\013\016\004\270Q\013\273\321\004\216Frun\232Fs\000\325 \362\323\n\r\n\261\022/\001\363\326\010>\n\361\331\007\327HAH\226\205\005H\221\205\023HM\353AH\271\205\006H\265\205\024HT_\377DCPERIOD\340\000\010\353\263\004\000\017\347\263\0137\003HASAE\000\007.\n\027\001\322\263\022t\000P5\000\303OR\000\006i\007\023\003\037\025SI%Nj\001S\353\230\007\300\000S\353\230\025\334\000?TRENDL0\003\003\006\360\327\007\003\r\321\016;\002MODE\340D\005\010\0011\014\010\010\223,igh\347Low\341\314\002\342\326\001IMI\300\000\000\312\266\004\000\007\276\266\013\225\315\t\231\315\004KA\303MA\000\001\204\267\004\000\010\371\266\013KC\353KC\034\005C\314\266\022KDJ\314\000\000@\005DJ\361\266\022\215\257\001AR7REG\000\006_A\321\234\001\000\014\340\222\270\004\000\023\222\270\013?\007\271\316\002CEP\341T\000\020@\016$\006\211\033_SL\007OPE\243\007\n\002\215\016\n\t\206\025p\345\271\003?\010\311\321\002\275\014NLN\363\005}N\2523OG10L\001\001x\233%\001\010\212,ineM\333@\377CDMACDEX\301T\000\004\356\272\004\000\013\346\272\013-\001FI\001X\000\004&\010\022\000\310\272\022^\001M\010\r\024\360\212\001\361\215\006\227\0015\024RKET\017FIMA\002\003\247\006\002\n\241\r\203SS.\000\002\000\325\006\002\007\314\rV\017PMAV\255\266\005\000\010\364\r\375\000\rX\247\314\002MA\002\003\261&\002\n&\016\340\035\007\2254\371&\010\025\306\323\001MA_\376\315\323\001.__geti\237tem__\t\007\261\215\003M\003ED\236\271\002\000\005\322E\020\004\224S\326 \355F\276\223\005MF\313\220""\023MID\037POINT\000\005\253e\020\004\202\355SI\206\004\001\004)\010\303\272\001\035\024N\007MIN\336#\001\004b\006\021\003\036\026\037AXMIN\221E\000\0106\007\340\247L\323\204\0148\002 \n\212\025US_\037DIMIN\003\002\225\007\003\tTK\0160\001M-\004M&\013M\362\025\274\360\007\315\205\023OMMOC\006O\3760\024ULTMULT\370\334\206\005\001\007\307\302\013NATRN\370\250\276\007\000\010\031\014ONENV\353IN\357\227\006N\341\227\024Nea\017rOBV\000\000\315\303\004\000\007\301\303\013\375O\262\305\003DictOu\275t\253\323\002PERC\202\254\001L\301E\000\007\223\304\004\000\016\216\304\0133\004RA\303NK\000\010.\013\031\001\374\303\022PLH\325B\000\004i\005L\276W+\003M\000\004\214$\n\277SPP\211\234\001\303\005\323\302\024P\327VIP\316\232\006P\300\232\024PV\351O\000\000\215%V\303\303\023PVT\024\000\000\034\006T\362\305\022Q\320\242\002\000\003\370\306\004\274\000\n\357\306\013RMAR\243\231\006R.\237\231\024ROC\000\000P\000\001\312\307\004p\000\010A\014(\000+\001100\000\004\036(\007R100\245\307\022\\\001\034\010x\014\025r\0070\023SIRS\267\235\005\\\000\007\341\014VIR\333\235\006R\315\235\024\017RVOL\000\001\345\005\014\000\242\023\274\255\345\001\221\337\001Real\372\302\002A\177RSAREXT\000\003\200\367\311\004\000\n\356\311\013+\000\033\007\301\311\022\326\300\001I\207NHS\001\000G\005\001\007>\014I\271N\031\0077\023MAS\221\235\006SN\215\235\024SMI\000\000\264\005M\214\235\023\017SQRT\000\001\333\005\014\000\251\023?TDDEVS\001\002\207%\220\001\t\200,\311\330\001\315\330\002F\000\003*\006O\007CHFJ\024\372\330\003\200\331\005&\t\355U\370\257\331\002O\t\3443UBSUB\260\274E\001\006\262L\320\242\tSU\346\212\023S\017UPER\310\227\002\000\007O\006\023\005\374\350S\371\321\002Shadow\200\340\307\001\004\003\341\307\002\017\003\340\307\005\004\007\022\010sx\370\316\003\376\316\003\357\236\001opy_\264\316\005\177__deepc\005\013\377reduce__\217T3T3\265\317\004\000\006\250\317\013T?ANTANH\000\001!\005 \014\000\204\317\022\325\313\007\306\313\025\223\352\001C\000\002\271\320\003~\000\010_Clone\005\t\357Open\000""\rAnd\357Fill,\tPee}k<\tUpdat<\n\314\243\331\002v\002OS\000\004c\010OSq_a\006\005\004Z\tOS_Y\006wOS_S\010OS_P\007\200\264\010E\007T\002\247\tA\007=\t=\007Dj\264\354\001D\000\003D\210\047DD\232\006l\004\004\375\010DD\230\006DD\225\010\033DDM\010OS\362\"\211\322\002\340&\000\227\322\002\336%\004\006O\t\271\322\001\330%\305\322\002\323\047\254\324\322\002\321&DR\265\002R\251\010RZ\252\007R\371\rDR\252\007R\250\tUR\201(X\210\"XT\003XO\tUXQ\010XK\017XS\010XR\n\251XS\n\326(X\327\047X\234\016X\n\327\047X\325)X\256H\242H\242G\346\016\250\240G\235I\275gO\264\360\001O\201\205\007O\252\222\204\006O\274mO\216\204\006O\212\204\010O\252\211\204\007PH\002PC\010PE\007P*?\016PG\007PF\tPH\010\307\324\001\000\326\361\001\307\324\004\000\010\264\206\007\332\324\005\266\206\005\004\t\263\206\010\000\201\325\005\266\206\005\221\325\005\264\206\007\243\325\005\265\206\006\213\325\002\235\207\006 \231\325\002Y\t\335\205\r\272\325\002S\t_N\013\263\206\007\007SIN\254\363\001\302\325\001\374\207\006\317\325\001\371\207\005\000\004\005\362\207\010\356\325\001\361\207\005\372\325\001\353\207\007\210\326\001\350\207\006\002\270\211\002_\363\325\002\326\210\006\201\326\001\323\210\005\004\005\314\210\010\200\240\326\001\313\210\005\254\326\001\305\210\007\272\326\001P\007\354\205\002T\252\346\205\010T\347\205\007T\340\205\016T\347\205\007T\002\345\205\tT\346\205\010\320\326\002\265\365\001\322\326\003\207\212\006\341\326\003\000\206\212\005\004\007\201\212\010\204\327\003\202\212\005\222\327\003\376\211\007\242\327\003\000\375\211\006\210\327\004d\003\375\326\003a\010\216\327\003d\007\006\007\000c\n\265\327\003h\007\305\327\003h\t\327\327\003\364\212\005\272\327\003\007TA_\274\327\004\346\213\005\313\327\004\345\213\004\003\010\200\340\213\007\356\327\004\341\213\004\374\327\004\335\213\006\214\330\004_\006E\003TAb\001\356\327\001[\006\373\327\001Z\005\004\005\200U\010\232\330\001V\005\246\330\001R\007\264\330\001\271\006O\215P\273\001OP\241\215\006\267\330\001\261\005O1P\336\213\014\324\330\001""\253\005OP\256\214\007\354\330\001~\211\215\005CCITA_\264\330\001\000\365\215\005\300\330\001\361\215\004\003\005\351\215\007\335\330\001\347\215\004\350\330\001\000\340\215\006\365\330\001J\006\333\330\005U\001\315\330\006V\006\337\330\006\000]\005\004\n`\010\210\331\006i\005\231\331\006m\007\254\331\006\000r\010\236\331\010|\003\240\331\t|\010\267\331\t\202\007\006\r\000\204\n\352\331\t\214\007\200\332\t\217\t\230\332\t\224\t\375\331\003\000\225\004\377\331\004\214\t\222\332\004\211\010\007\010\202\013\275\332\004\000\201\010\317\332\004{\n\343\332\004\230)\303\332\007\235$\305\332\010\000\230)\334\332\010\231(\007\014\226+\217\333\010\231(\245\333\010\000\227*\275\333\010\270I\240\333\004\272D\242\333\005\262I\266\333\005\000\260H\007\t\252K\343\333\005\252H\366\333\005\245J\213\334\005\000\303i\351\333\t\312d\353\333\n\307i\204\334\n\312h\007\016\000\311k\273\334\n\316h\323\334\n\316j\355\334\n\361\204\t\312\334\n\000\371\204\004\314\334\013\367\204\t\346\334\013\373\204\010\007\017\373\204\013\237\335\013\000\201\205\010\270\335\013\202\205\n\323\335\013\244\207\010\260\335\n\260\207\003\262\335\013\000\262\207\010\313\335\013\272\207\007\006\017\276\207\n\202\336\013\310\207\007\232\336\013\000\315\207\t\264\336\013\242\t\224\336\010\246\004\226\336\t\240\t\256\336\t\000\240\010\007\r\234\013\343\336\t\236\010\372\336\t\233\n\223\337\t\000\371\211\010\365\336\005\200\212\003\367\336\006\375\211\010\213\337\006\200\212\007\006\n\000\377\211\n\270\337\006\204\212\007\313\337\006\204\212\t\340\337\006\177\t\303\337\005\000\205\004\305\337\006\201\t\332\337\006\203\010\007\n\201\013\211\340\006\000\205\010\235\340\006\204\n\263\340\006\226\214\010\216\340\014\244\214\003\220\340\r\000\250\214\010\253\340\r\262\214\007\006\021\270\214\n\346\340\r\304\214\007\200\341\r\000\313\214\t\234\341\r\260\t\370\340\014\266\004\372\340\r\262\t\226\341\r\000\264\010\007\021\262\013\323\341\r\266\010\356\341\r\265\n\213\342\r\000\266\n\352\341\010\270\005\354\341\t\260\n\205""\342\t\256\t\010\r\000\250\014\274\342\t\250\t\324\342\t\243\013\356\342\t\303\220\010\311\342\013\000\320\220\003\313\342\014\323\220\010\345\342\014\334\220\007\006\020\341\220\n\236\343\014\340\354\220\007\267\343\014\362\220\t\322\343\014\251\tOJI\010\244\004\271\343\004\000\013_\247\t\275\343\005\242\010\007\t\000\231\013\352\343\005\226\010\375\343\005\216\n\222\344\005\206\014i\rQ_g\013\242\241\014\371\344\004__\013_Y\r\001_\243I\275\344\t\247D\277\344\n\241I\330\344\n\241H\000\007\016\235K\217\345\n\237H\247\345\n\234J\301\345\n\240\225\010\000\242\345\006\250\225\003\244\345\007\246\225\010\271\345\007\252\225\007\006\013\252\225\n\000\350\345\007\260\225\007\374\345\007\261\225\t\222\346\007\206\t\357\345\013\221\004\000\361\345\014\222\t\214\346\014\231\010\007\020\234\013\307\346\014\245\010\000\341\346\014\251\n\375\346\014\252\017\244\357\001\253\n\345\346\002\242\017\000\374\346\002\237\016\r\006\230\021\257\347\002\227\016\305\347\002\221\020\000\335\347\002\216\231\010\261\347\r\235\231\003\263\347\016\242\231\010\317\347\016\255\231\007\000\006\022\264\231\n\214\350\016\301\231\007\247\350\016\311\231\t\304\350\016\267\t\000\242\350\n\272\004\244\350\013\263\t\276\350\013\262\010\007\017\255\013\000\367\350\013\256\010\220\351\013\252\n\253\351\013\206\234\010\217\351\003\213\234\003\000\221\351\004\206\234\010\243\351\004\207\234\007\006\010\204\234\n\314\351\004\207\234\007\000\335\351\004\205\234\t\360\351\004p\n\323\351\005y\005\325\351\006x\n\000\353\351\006}\t\010\n~\014\234\352\006\205\t\261\352\006\207\013\000\310\352\006\211*\255\352\001\216%\210\352\006\000\016\240\213\t\302\352\t\000\245)\305\352\007\261\256\001\247,\342\352\007\257)\370\352\007\262+\250\220\353\007\233\016x\017_u\r_i\024_\022k\r_d\017\273\213\tH\312\353\004\256d\314\353\005\000\253i\340\353\005\256h\007\t\255k\215\354\005\262h\240\354\005\000\262j\265\354\005\262\204\t\231\354\003\202\005\215\354\005\000\r\232J\000\277\354\006\225)\007\013\221\014\343\354\006\226\t\370""\354\006\226\013@\217\355\006\224\017s\020q\017\222P\375\355\003_l\016\001_g\020\233J\264\355\010\332\206\004\266\355\t\333\206\t\316\355\t\000\342\206\010\007\r\345\206\013\203\356\t\356\206\010\232\356\t\362\206\n\263\356\t\000\210\245\010\216\356\014\226\245\003\220\356\r\232\245\010\253\356\r\244\245\007\006\021\000\252\245\n\346\356\r\266\245\007\200\357\r\275\245\t\234\357\r\260\t\202\357\002\000\254\004\204\357\003\236\t\226\357\003\226\010\007\007\212\013\277\357\003\000\204\010\320\357\003y\n\343\357\003p\n\301\357\t}\005\303\357\n\000\200\n\335\357\n\211\t\010\016\216\014\226\360\n\231\t\257\360\n\000\237\013\312\360\n\366\250\010\254\360\004\374\250\003\247\360\014\000\022\203\226\t\000\304\360\r\237\251\007\006\021\245\251\n\377\360\r\261\251\007\231\361\r\270\251\t\210\265\361\r\267\017\214\020_\206\016\251\226\017\263\362\004_\002v\016_l\020\270\226\t\333\361\t\301\253\003\335\361\n\302\253\010\000\365\361\n\311\253\007\006\016\314\253\n\252\362\n\325\253\007\301\362\n\331\253\t\000\332\362\n\335\254\010\267\362\013\242\004\242\362\013\237\t\274\362\013\242\010\000\007\017\241\013\365\362\013\246\010\216\363\013\246\n\251\363\013\245\r\007INE\244\010\230\363\001\231\r\254\363\001\224\014\000\013\005\213\017\331\363\001\210\014\354\363\001\200\016\201\364\001\235\257\010\000\361\363\005\244\257\003\363\363\006\241\257\010\207\364\006\244\257\007\006\n\243\257\n\000\264\364\006\250\257\007\307\364\006\250\257\t\334\364\006~\n\276\364\006\206\005\000\253\364\007\204\n\302\364\007\210\t\010\013\210\014\365\364\007\216\t\000\213\365\007\217\013\243\365\007\222\013\223\365\001\223\006\237\365\002\212\013\000\262\365\002\207\n\t\006\200\r\335\365\002\177\n\357\365\002y\014\000\203\366\002\243I\335\365\013\257D\337\365\014\261I\372\365\014\271H\000\007\020\275K\265\366\014\307H\317\366\014\314J\353\366\014\252\017\000\220\233\007\314\366\t\242\017\213\233\014\371\366\t\317\224\016\226\367\t\227\016\250\211\233\016\304\367\t\250\265\010O\331\215\010O\323\215""\016O\252\324\215\rO\315\215\024O\324\215\rO\322\215\017O\000\323\215\016\355\367\005\254\266\003\357\367\006\251\266\010\203\370\006\254\266\007\006\n\000\253\266\n\260\370\006\260\266\007\303\370\006\260\266\t\330\370\006\260\267\010\270\370\010\000\272\267\003\272\370\t\272\267\010\321\370\t\300\267\007\006\r\302\267\n\204\371\t\000\312\267\007\232\371\t\315\267\t\262\371\t\223\n\217\371\013\235\005\221\371\014\000\235\n\255\371\014\243\t\010\020\245\014\352\371\014\255\t\205\372\014\000\260\013\242\372\014\223\272\010\374\371\014\241\272\003\376\371\r\245\272\010\231\372\r\000\257\272\007\006\021\265\272\n\324\372\r\301\272\007\356\372\r\310\272\t\212\373\r\000\260\t\352\372\010\262\004\354\372\t\252\t\204\373\t\250\010\007\r\000\242\013\271\373\t\242\010\320\373\t\235\n\351\373\t\231\013\315\373\003\000\233\006\317\373\004\223\013\344\373\004\221\n\t\010\213\r\223\374\004\000\213\n\247\374\004\206\014\275\374\004\351I\233\374\007\352D\235\374\010\000\341I\264\374\010\336H\007\014\327K\347\374\010\326H\375\374\010\000\320J\225\375\010\211\204\t\362\374\n\215\204\004\364\374\013\207\204\t\216\375\013\000\207\204\010\007\017\203\204\013\307\375\013\205\204\010\340\375\013\202\204\n\373\375\013\000\250\n\332\375\010\254\005\334\375\t\246\n\365\375\t\246\t\010\r\000\242\014\254\376\t\244\t\304\376\t\241\013\336\376\t\213\302\010\301\376\003\000\220\302\003\303\376\004\213\302\010\325\376\004\214\302\007\006\010\211\302\n\376\376\004\000\214\302\007\217\377\004\212\302\t\242\377\004p\n\206\377\004x\005\210\377\005\000v\n\235\377\005z\t\010\tz\014\314\377\005\200\t\340\377\005\000\201\013\366\377\005\203)\327\377\005\213$\331\377\006\211)\356\377\006\000\215(\007\n\215+;\006\223(O\006\224*e\006\026\225IRI\260\254\007T\007\003\234\262\t\013\005\000\231H\036\004\343\245\0166\005\233HI\004\232J]\004\376\260\306\010UNIQUE3\373RI\362\235\001A_CDL\000\006\t\252\263\t\013\n\303\306\007\006\016\306\306\n@\n\317\306\007\360W\n\323\306\tp\n\233\tPSID\377EGAP2CRO\013WS\345\307""\003U\007\013\240\n\014\014\245\010\000\007\020\245\013G\014\253\010a\014\254\n}\014\223\311\010\375X\264\0043METHO\001D\266\004\006\r\225\266\t\013\016\262\311\007\006\022\271\311\n\300H\016\306\311\007c\016\316\311\t\200\016\253\313\006EI\001L\261\313\001\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010\300(\001\261\313\0054\001\260\313\007B\001\205\314\006MF\006\212\314\001MF\224\270\007\t\000\206\314\005\004\004\203\314\010\200&\000\206\314\0051\000\204\314\007>\000I\007\316\325\001C7MOUU\002OUP\010\n\000\000S\006\005\004Q\t)\000U\0065\000T\010C\000\210U\010F\t\305\270\006M\237\326\r\200\000\275\270\006M0\246\326\010\024\001\205\316\006\340\347\001CK\216\316\001\004\003\000\234\272\007\t\004\222\316\005\004\010\223\316\010.\004\232\316\005=\004\270\234\316\007N\004e\007RRE\306BO\000\005\001b\010\n\002c\006\005\006_\t-\002a\006\340;\002^\010K\002\315\007\234\206\002OSH\006\325\002SH\314\010\n\000\313\006\005\004\305\t\000)\000\305\0065\000\300\010C\000U\010F\t\311\273\006\252\273\336\016C\301\336\007C\276\336\tC\276\336\010C\000\342\342\002\221\321\001\352\342\003\217\321\006\371\342\003\223\321\005\004\007\223\321\010@\234\343\003\231\321\005\252\343\003\232\321\007\272\343\003\361\321\006V\365\321\002\033VI\200\276\007VI\204\275\006\004\004\357\321\010\333VI\374\274\006VI\366\274\010VI\016\373\337\006DEM\366\323\001\003\001\303\341\006\010\002\000\301\341\004\003\006\272\341\007\047\002\271\341\0043\002\263\341\006A\002~\260\341\005DIVTA_\003\000\026N\007IV\255\341\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\033HI\327\343\001_D\004\004\253\007\t\005\000\261\005\004\t\262\0100\005\271\005@\005\273\007R\005T\300\006\217\335\002D\211\335\010D\212\335\007D\203\335\016UD\212\335\007D\210\335\tD\211\335\010D\242\340\001SDX\350\047\301\337\006D\271\337\rD\277\337\0065D\274\337\010D\274\337\007EF\213\326\001\003\000\000\203\345\006\010\001\200\345\004\003\005\370\344\007%\001\366\344\0040\001\300\357\344\006=\001\353\344\005\216c\227`I\007MA2""\350\344\005E\004\004H\010MA\346\344\0050\001\326I\007MA\343\344\006E\347\342\001ERb\246\002R\266\204\007\017\000O\006RI\353\344\014\204\031\001\243\005R\265\204\0101\001\242\006\263\343\007E\252\263\343\006E\253\343\rE\261\343\006E\256\343\010E\306\256\343\007EX\243\331\001\003\000\273\047XP\"\351\006X\227\331\r%\001\275%X\234\331\010=\001\036\260\347\005FLOO\334\344\001\003\002\237\350\006\000\010\003\236\350\004\003\007\230\350\007)\003\230\350\0046\003\223\350\006\010E\003X\006\231\346\003F\353\345\001\377\350\005\010\002V\005\004\204\346\001\314\271\013F\220\346\0103\002Q\007\261\346\001\262\006_RACTA\255\216\001F\004\003\000\265\007\t\004\271\005\004\010\270\010.\004\275\005=\004\370\275\007N\004\241&UNC_F\367LAG\344\351\001Func\377TableAll\337ocTA_\010\006Fr\335e\346\352\001Get \001Ha\367ndl\005\010Info\367TA_\033\000Inpu\377tParamet\373er\016\007Lookbwack \003Opt\021\025\367Out.\021roup\322\215\nG\t\006\224\004H\301\336\001HA\"\214\354\006H\254\205\006\003\004\377\353\007H\252\205\006-\000\n\364\353\006H\247\205\007H\223\212\002\003\000D\007\372\205\007\205H\363\205\016H\372\205\0070\001H\007\371\205\010H\377T_DCPERIAO\256\353\001\003\010\247\007\030\007\327\354\005H\004\014\000\270\010\"\010\310\355\004H\t\313\007J\010\315\355\005\205\003\007HAS\356\340\001\003\007z\014\034\001z\013\000\t\006w\r&\002y\n8\002v\014L\002y\010\001P\177\000\240\206\002\230 \006\003\377\t\013\004\313\357\004\000\031\007\240\300\0131\007\373\007E\004\367\tX\004\366\010\211S\313\261\003\223@S\301\261\t\010\005m\007S\010\263\261\017-\005\356\047S\260\261\nM\005\345(\335\363\002\001Lk\006\006\006\361I\013\007\353\007\006\013\362J\300:\007\366GN\007\365Id\007\202\rMO\001D\375D\376\364\002\013\001\201\016\020\002\203\014\013\006\200\200\017?\002\203\014S\002\201\016i\002\341\362\005I\001M\324\344\001\003\000\314\363\006\010\001\311\363\004\003\005\301\363\007\300%\001\277\363\0040\001\270\363\006=\001J\006NP\373UT\322\210\006Initioaliz\255\364\001KA\364\221\002\000\003\001\274\364\006""\010\002\272\364\004\003\006\263\364\007\047\002\262\364\004\3203\002\254\364\006A\002\251\364\005K\250\365\001KC\032L\007C\243\364\005KC\315\363\014#\000H\005\361C\233\364\0079\000C\006DJTA\017_KDJ\232\007\t\000\233\005\004\004\000\227\010&\000\231\0051\000\226\007>\000\310\365\005\303\343\001\377ARREGTA_~\003\006_ANGLE\000\017\000\327\366\006\033\014\365\365\005\003\021\344\366\007%\r\356\366\004<\r\360\363\366\006U\r\242\016|\020INTE\037RCEPT\302\n\r\006\026\031\000\263\017-\007\204\311\013\236\047O\007\274\016j\007\276\020\300\207\007\303\017\254\371\004\203Ge\025\257.SL\003OP\250K\r\002\243P\022\003Y\016\r\007\010\242QG\003`\023_\243Pw\003\244O\316P\254\205\204\006\301\362\001LN\336gN\322fN\250\372\371\014#\000\271eNs\010N\307\372\006L\017OG10\322\204\001\004\001\260\204\007\t\002\000\334%\004\006\233\204\010*\002\224\204\0057\002\210\204\007F\002\234\203\374\005\246\232\002MAC\355\372\001\003\001E\001X\362a\003\004\202\375\006\010\005\203\375\004\003\t\377\374\007\300-\005\201\375\004<\005\376\374\006M\005q\007CD\003FI\331\371\001|\001\007\000b\n\014\001d\010\000\007\005a\0131\001d\010@\001b\nQ\001c\t\242\304\n_\303\010\222\375\014\215!_\275\010_\004\270\n\345\375\006M\353\211\003\003\001\240(\316\230\007\024\002\230\373\317\013\047\002\231&MAN\t\321\230\010M\037ARKET\202\232\002\003\005\202H\000\026\003\266\007\005\010\203I \004\207F0\004\206HlB\004\203gSS\205\362\001MA\005\000\000\362H\n\001\362F\005\005\355I+\001\356F8\001\350\352HG\001\344gV\270\363\001MAV\210\263\363\007\010\002\320fV\257\363\r\047\002\312fV\360\266\363\010A\002\276\204\007\303cXIND\031E\000\010\207\235\007MA\026\003\355G\005\010\000\272\204\t \004\276\204\0060\004\275\204\010B\004q\010\237\205\010\201XV\010\306n\271\376\006\213\000\311i\270\376\007M\300\342\226\007\275i\220\204\016\225\204\007\221\204\t\221\204\007ED\036\315\370\002TA_M\004\004\304\206\007\t\005\000\307\206\005\004\t\305\206\0100\005\311\206\005@\005\310\206\007R\0054\305\207\006\254\204\003F\304\243\007MF\305\243\006""\003\005\242\247\207\010F\305\243\006$\001\240\207\007F\304\243\007M?IDPOIN\221\210\002\004\004\000\215\210\007\t\005\220\210\005\004\t\216\210\0100\005\222\210\005@\005\210\221\210\007R\005\216\211\006I\265\047\004\004i\nR\017ICE_k\010\007\006h\013\"\002\300k\0102\002i\nD\002l\007\374\376\001MI\001N\274\204\006\004\004\347\010\026\003r\007\005\010\346\t\300 \004\351\0060\004\347\010B\004q\010MA\006\210\212\002IN\243\205\005\271a\004\007y\t\274\205\016\000\034\010\342\210\0146\010\204\007\204\206\006\205\t\231\206\006\206\013Pi\014\360\010\301\205\001Z\021_\\\n_U\014~\265\212\007INUS_D\355\210\002\000\004\004\335)\027\002\336(\006\007\334*!\003\337\047 1\003\335)C\003\332Hr\001M\327#\006\002\312f\rMg\014M\217\214\r\263\003M_\026h\013M_f\rM\340\t\271i\265h\320J\017\264(\257*\356\214\007O\271\002OM\252\227\217\007O\252\007O\236\016O\240\007O\032\231\tO\225\010UL\364\217\002\004\000\354\217\007\000\t\001\353\217\005\004\005\345\217\010(\001\345\217\0054\001\340\217\007\034B\001\324\377\005NAT\245\247\001\003\001\345\353\006\000\010\002\330\377\004\003\006\326\377\007\047\002\332\377\0043\002\331\377\006\250A\002Q\006\267\255\002N\261\255\010N\262\255\007N\252\253\255\016N\262\255\007N\260\255\tN\261\255\010O\001B\336\254\001\003\000\220\355\006\010\001\221\377\004\003\005\203\377\007\300%\001\373\376\0040\001\356\376\006=\001\344\376\005OUuT\246\233\tP\327\227\001NTI\226\231\002\000\003\007\200\356\006\010\010\364\376\004\003\014\361\376\0073\010\364\376\004\340E\010\372\377\006Y\010\367\377\005}\004RAN\020\341\263\001\003\010v\r\036\001_y\013\n\006w\016@(\002{\013;\002z\rP\002\202\006L\373\206\005iP\004\003\377\007L\364\206\nPL\354\206\021\004-\005\370\005L\357\206\014M\005a\013\370\206\001i\003\001M`\014\361\206\006\027\005\271\344\013-\005b\n\354\206\010\250M\005\340&\343\257\002P\335\257\010P\336\257\007P\252\327\257\016P\336\257\007P\334\257\tP\335\257\010P\252\254\263\002P\246\263\010P\247\263\007P\240\263\016Pj\247\263\007P\245\263\tP\246\263\010PV\231\271\001,""\003\000\373gVO\356FV\263\270\r%\001\242\350eV\270\270\010=\001\331fV\271\235\001P+VTH\010TI\007T\321\362\014%\001\302J\006T\316\362\007=\001\254\204\006\373\252\001Ho/lder\300\253\005P\t\007\303\253\004\017QSTI\265\271\002\003\003\326\364\006\010\004\000\242\377\004\003\010\225\377\007+\004\216\377\0049\004\202\377\006I\004\252\371\376\005R\336\265\002R\242\223\010R\305\261\007R\252\276\261\016R\305\261\007R\350\227\tR\304\261\010R\001O\341\242\001\003\000\263\260\001\003\001\223\366\006\010\002\262\377\004\000\003\006\244\377\007\047\002\234\377\0043\002\217\377\006A\002\252\006sOC\255\262\001d\000R10\320\234\001\010\003\004[\t\026\001_`\007\006\006`\n \002\000f\007/\002g\t@\002j\tU\nS\t\327\366\014*\227\001_N\010_I\n_\276\010\217)\300\245\010>\017D\010A\nC\007\354\231\002RS\210\366\271\007\010\001\345%S\260\264\r%\001\343%SP\365\271\010=\001\223f\316\272\002R\310\272\010R\311\272\007UR\302\272\016R\311\272\007R\307\272\tR\310\272\010\007RVO\350\301\001\003\001\214g\021\000\243F\000\004\005\213h\033\001\216e\047\001\214g5\001\300\204\006\177estoreC\366\261\002\377DefaultS\377ettingsT\017A_SA\341\266\001\003\000\222\240\003\003\003\000\254\373\006\010\004\301\377\004\003\010\261\377\007+\004\247\377\0049\004 \230\377\006I\004\214\377\005k\000P\t_O\007\201\373\014d%\001I\007_D\t\373\372\006SI\204\243\001\007SIN\353\277\001\003\001\255\007\021\000S\006\000\004\005\250\010\033\001\251\005\047\001\245\0075\001\244\006\003INF\tF\010\235\r&\000E\007\242\010UI\336\243\007S\256\276\002S\362\233\010S\225\272\007US\216\272\016S\225\272\007S\270\240\tS\224\272\010\321S\367\254\002\003\000\245GM\321\277\006SM\210\212\272\r%\001\236EM\317\277\010=\001\227FQ\005R\220\251\001S\004\000\372G\t\001\372E\004\005\200\365H(\001\366E4\001\362GB\001\361FT\027DDE\331\277\001S\004\002\330g\t\003\000\332e\004\007\327h,\003\332e:\003\330gJ\003\226^\007OC\213bT\005\000\342\307\001S\020\004\002e\010\024\001\360fT\005\006d\t\036\002 g\006,\002e\010<\002c\nR\320\242\002e\002\020\335\207\t\010""\006\325\006\231\000R\342\207\016/\006f\t\001R\361\207\tQ\006\331\n\306\013\306\n\276\205\r\211!e_\305\t_\302\013\312\205\007UB\221\207\001\003UB\371\206\007\t\000\370\206\005\004\004\362\206\010&\000\240\362\206\0051\000\355\206\007>\000\353\206\006U\206\232\001S\001U\302\230\007\010\001J\006\353\231\r%\001J\006\346\231\010\034=\001I\007PER\227\265\002\250\002\005\005\000\251\010\n\006\262\006\005\n\266\t5\006\300\006G\006\030\305\010[\006\302\210\006et\316\211\003\301\211\t\021\000\377ompatibiolity\334\211\001et\251\274\n\177Integer\007\020\357Real+\003Uns\375t\312\275\001Period\376\241\212\001hutdown\237TA_T3\000\002\242\372\006T\0013\222\371\005\003\004\217\377\007\030\000\201\377\004\"\000\356\376\006\004.\000\336\376\005T\221\306\002\003\000\254\312\001\003\001L\007\007ANHO\006\004\005O\010\033\001T\005\000\047\001T\0075\001U\010F\tF\010\256\372\014\206\000\245_E\007_B\t\242\372\006T\357\310\003T\026\326\304\tTE\331\304\007T\322\304\017\047\002\373\005x\331\304\nA\002\376\006RANG\243\355\001!T\004\002\321\047\t\003\250\377\004T\004\007\330(@,\003\337%:\003\341\047J\003^\007I\263\312\002GTRI\371\247\010\010\003\\\006I\231\306\016\204)\003Z\006I\307\254\tE\003V\010\240\310\001T\003RI\234\310\007\010\002T\007\232\310\r\047\002R\007h\243\310\010A\002\241fS\255\322\001TS\247\322\007\000\010\001\222%\024\000\377\376\013%\001\363e1\000\362gh>\000I\007\224\315\001T\215\222\010TS\217\315\006\201T\207\222\016%\001J\006\215\315\010=\001\307\204\006Y\005P\213\252\005T\004\004\236\205\007\t\005\307E\004\t\200\251\205\0100\005\262\205\005@\005\266\205\007R\005\261\376\005U\003LT\317\306\003\003\003\225\376\006\010\004\256\377\004\003\010\200\246\377\007+\004\244\377\0049\004\235\377\006I\004\231\377\005V\000\245\222\002\003\000\367\376\006\010\001\331\374\004\003\005\342\376\007%\001\240\375\377\0040\001\363\377\006=\001J\006H\204\326\001V\001H\376\325\007\010\001K\005\024\000\366\354\013%\001K\005p1\000I\007>\000\235\006ORT\232\257\002\001V\004\002\242\007\t\003\247\005""\004\007\247\010,\003`\255\005:\003\256\007J\003\205&WA\372\312\001\001V\004\000\206\047\t\001\211%\004\005\207((\001\300\213%4\001\212\047B\001P\007\331\321\002VW\000\236\257\010\010\002Q\006\274\315\016\047\002Q\006\350\263\tA\002\006\227\377\005WA\300\306\001\003\000\375\372\006\010\001\353\376\004\000\003\005\331\376\007%\001\315\376\0040\001\365\377\006=\001J\006\013CL\376\257\005W\004\004S\007\t\005Z\005\000\004\t\\\0100\005d\005@\005g\007R\005\300\006\027ILL\230\317\001W\004\001\303\007\t\002\000\307\005\004\006\306\010*\002\313\0057\002\313\007F\002\250\241&\334\324\002\366)W\303\320\007W\274\320\016Wj\303\320\007W\346\266\tW\302\320\010ZL\260\325\003\000\003\002\376\375\006\010\003\270\377\004\003\007\251\377\007)\003\240\377\004\3006\003\222\377\006E\003\211\377\003\217\326\001\371\321\001St\337reamT\001\007.o\377pen_and_\017fill\335\213\003\342\213\004%\004\360\213\003\2003\003\036\r\256\213\001\252\213\002$\005\267\213\001\024\024Xl\364\212\002 \006X_>\022SF\303\212\001\226\240\004SF\016\024I\225\212\001\035\005I\0004\023\346\211\005\343\211\005\364\004\001\013\361\013\246\211\003\242\211\0048\245#\000\n\237+VAR\353\210\001\315#L\000\007\026\014HF\275\210\001\036\004H\273\023\000\207\210\003\214\210\004I\004\232\210\003\3431\321\207\001\324\207\002s\004\314\340\207\001\022\023MA\242\207\002 \005MA\016\3372WAD\361\206\001\225c\000\007\214k\000\267\206\005\276\206\006(\004\316\206\005\214q\373\205\002\377\205\003V\004\\\214\206\002\026\022MAW\226\006W\222\024\340\237\205\002\233\205\003\302\204\003\000\t\273\204\013_AR\377RAY_TYPE\375S\352\322\002tion__\377call_fun\365c\n\002F\001\005_che\377ck_opt_i~\346\322\001_value-\010\347get\003\030.\003pri\377ce_serie\237s_nam\003\000W\007l\365ox\000_\001\014data\370\222\0100\001\000\014str_I\304\354\312\002\313\002S\312\004\r\003\333\272\002_S\367ERI\341\000DEFA\377ULTS_PAN\377DAS_DATA\237FRAME\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\002FUNCTIOWN_N\311 S\373\000_\277a^\203 anno\275\002_\320d\371_\317m\277t_clas\323s_\320`\353\000mN\001co{pyV\001deep\003\006\234\205\001\352 docq\001\364%_\341e\350#\300\204\002\212\001\226\204\001flaOgs__\221\204\021[\tg\354%V\301@in\260B_\242\204\026_\254\204\003\337_main\362\001me\363ta\263\003\377@modu\033le\022\002ro\224a\357\204\002\230`\354\276\204\002\004\001ew\247!pre\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\232\234\002\236\250Aqual\214\005\213\204\004_3__\214\204\r\t\005ex\334A\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\342\250\003s\374\363\215\002\337@s_is_c\377oroutine\236\370 okupK\001\222\210\003soucce\260`ta\361C\273unW\000id_\001\014s~\003\013retire!\002\001g\332\334\003\314\334\001\241\001\010\004\216\335\002\t\004\356\333\007\000\032\004\340\334\0173\004\320\334\022\024\005\324\334\017i\004\333\0004\356\237\010\r\005u\303\237\004_p\306\237\002\275!ii\310\324\006\313!r\230\253\003_c\225\336\002\201_\261$\227A\234\253\002\356!\243A\030\004sD\261\253\004\016\006oe\014\317Aa\020s\271\240\004\377a_closea\377_higha_l\257owa_\233\221\001a\231\004s\255a\270`al\000\0030\007\0031~\361@olumea\241@\217lera\345\213\001\000\t\346\205\001l\367ong\004\rshor9t)\t\025\rmax\000\020&\016\366A\004qu\351Aappe\337ndarg\000\000sa\377rraysasc\357iias\323\205\001asy\337ncio.\341fsa\335t\314\207\002atr\374#av\375g\205Cbbegid\377xbitbyte\277s2strc\237Dc\374\230\215\003\215Cstickc\375l\262\204\001in_tra\263ce\214\341\001\305 ne\310\"c\257olle\352\215\002s\010\000u?mn_sta0\000\260!}n\020\000pydde\234\205\001\370\324E\366\215\002\231\205\005descr\373ip\271\216\001displsay\325\215\002\257\205\001doc\363 \373nt\354\"empty\370\367\000\260\000\375\000swit""h\363en\222@\214@efac\357torf\200 d_maa\333\207\001\006\003\356c\024\001k_\002\007\037limit)\001!\007\"\004\357irst-\004lag\214\357\211\002\363\211\003lo\252\206\002\332\206\001\327\217\001_<\370!\004\002info\r\002\234!\016\026\002obj\212 \370\217\006?\003\207\220\005\004\260\217\001\224\220\005s\356\217\001\206\220\003\301C\006\007\326\217\002\232\215\220\001p\210\344\005sg\304\343\001\000\002s\275h\277\344\002help\301\204\001h}i\332\261\001ylenh\264\270\002wiid\323@imp\371`\377_errorin\037index\247\001c\t\201\221\003\324\302\220\001\000\007s\320\220\025i\257\247\003isy_\203B\323\214\001skey\000\000\367skw\206\204\001left\357bars\205\000gth\372\207\221\002l\263\345\004lowlo\367wer\224Cmaxi\277mummax\214\207\003m\277emomin\006\004i-s\200\000gm\001\003_[\001\203\214\003\377msgmulti?pliern\367\221\001\373\221\001\357dtup\366\000ann\257bdev\000\002d\006\003uWpno\305\215\001s\342\263\001_\332)\004\261`\374\222\003s\006\001\207\223\006\010\003\276\346\002\025\001\373py\302Coffse_tonre\363\212\001e\306\231\001\020\312\231\001\300\251\001\264\210\002\316\231\to\230\347\001\330\223\006\333\223\014\375s`\007ordere\375d\247\213\001outout\237aroon\332\251\001\004\005u\377poutbear\341p\264!\007\002\247\206\001\021\001ull\376\r\005doutfam\355a\002\002st\t\003stk\037outha\342\210\002\005\002\346\210\001\216\016\002low\026\002\300\002\203\214\001p\217hase\214\214\002\215\253\002\000\007_~\263\224\001outjouJ\002\217lead\230`(\001\305Bb}a\254\000utmac\200\001\370\003\001\201\204\002\014\003signaslo\033\001\227\002max\010\002\327xid\000\006xZ\005mioddleH\005in3\001\343in#\004\004\002 \007nus\377vioutnbe\337lemen\267!plz\016\004p\305\"put_\246\221\002\221o\210\352\002\237\226\002\000\010s\021\003\000\004s\372\200\227\001i\302!quadroatur\212!re\271\002\340\003\001\341\t\023\001\241\n$\001upp\363er\207$\232$slow\030\226A\004\001\207Asm\260\001\003\000\217&\377supertre>\277\"swing\234D\007\002\370\240C\027\005X\006panda\301s\213\207\002\220\207\002\372\227\002\225\207\007\244\207\002sp""\357enet\232\214\003per\177centile\363\215\003~\371\215\003spolar\003\000)p\306\230\002\313\230\0020\321\230\0021\320\230\t\327\230\016\322\250\231\003s\373\230\002\003\000o\275\001yr\217ange\310\222\001\256!\262!0\376\267!1replac\215e\366\222\003sr\216\000\220\260\001\357\204\001t\275_\242\221\001righ\246\207\002r\047oc1\220\217\003\007\0002\001\006\014\004\377unsschem\177asecond\271\004\007elf\371\231\003\267\222\001\335\232\006\207\215\001\310\222\001\340\302\211\t\006\007\244\232\002\347\222\001\304\211\007set\200\231\222\005\203\274\003\217\224\001\263\204\003\272\213\003\277\204\003\256$k\017ip_f\230\213\001\327B\333\213\004\006\003\036\320$lowk\r\010\346\213\005\210a8\351\213\002\221aR\004low\205D\241\215\001\377levelsta\343rt\213\234\002\254\231\002\262\231\001icm\377ethodstd\267dev)\005r2\246\216\002s\366\335\242\002sy\236\262\003tali\363b.\226\224\001\005\000thre\377adingtim?eStamp\005\001\366\221\003\352\000\0071\013\0072\026\0073to?_numpy\234\226\001\237\226\002~\377\223\004update\000\003\031_\356\214\001\362\204\002us\207\235\001\336\232\003\310\235\002\324\274\003\230\225\004v\216\216\003v\264\221\002wasrn\000\001\356\276\001wma\205\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)\356\312\001\340\010\014\265\364\t\320\014\034\275\230\335\364\004L\230\t\240\342\211\002\033\277\230A\230[\250\001\307\362\002\010\177\r\210U\220!\320\023\337 c\240q\206\365\003\037\006\364\211\030\340\010\205\211\001\3371\200A\3602\327\204\010:\220\307Q\220n\203\213\001\325 \242\363\001\007\220\377t\320\0336\260a\330\020\337\023\320\023%\240\314\325\001\024\030\276\266B>\260\021\330\024\242\363\001\047_\250\034\260Q\340\004\004\021\342\364\001\3451\254A\007\310\205\001\335""\210\005>\240\023\276\325A\025\320\025%\240\274\211\001\320\277\025&\240a\330\020\227`\340\373\020\026\303\366\002\001\330/6\260\377c\270\021\270.\310\002\310\377!\3309:\33004\260\271E\345\377\001\321\363\003N\220!\226\204\001\014\320\317\211\001\365&\245!\232 \330\305\003\320\000\377\021\220\021\330\004\005\360\006\377\000\n\013\330\010\023\220?\377\240!\330\004\007\200t\210\3511\364\366\001\201\365\002\016\262\206\001l\230!\343\2301&\000\021\002\360\340\002\036\230lz\351\366\001\035\317\364\005\036\230a\340\265\215\001\377\031\230\021\320\004\035\230Q\370\237\215\010\337\365\001\203`\330\010\022\220\047\376\262B\010\014\210G\2209\230\367J\240f\305\204\001\017\210t\320\315\023\226\364\001G\260\270\365\002\214\366\001\026\240\047q\250\013\302\376\001\373\214\003\330\245J"; - PyObject *data = __Pyx_DecompressString_LZSS(cstring, 36761, 121608); + #elif (CYTHON_COMPRESS_STRINGS) > 0 && (CYTHON_COMPRESS_STRINGS) <= 90 /* compression: lzss (42826 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\307ib.\317\216\004\220\246\001\013\003nu\337mbers\004\006py\274#\003\301\236\001ator\007\004r\005d\351 d\246\245\001B\003\207\245\003\005\004\374\244\002\366Z\003syD\004thre\231a\330\233\001r\003wa\361\236\002b\003/\275_\333\247\005.pxi\224\002/\036\337\000mmon\006\010\271\247\001\025\010\320\304\226\003,\002\226\211\005\260hs\315\232\r\047A\377CACCBANDMS\000\005_S\210\227\002\000\014.\215\246\001\376\343\241\001_fillAC\rO-\000OS#\006\002\006\030\rE\006\\P\0049\014DAD\000\000Dl\005\373DD\020\024OSCAD\360\002\000 \006\002\007B\rRADR\212G\006R`\024X\356\234\001\362\234\001q\006X\340\022\026\031\007\255\024\265\006\316\023LLA\207LMA\000\001\323%\014\000\371\023O\353AO\367%O\2333POA\365P\033\006P\016\024ROON\001A\001\001\263!\001\004\317E\001\013\310L5\001\374\035\t\237SSIASIN\300\000\001\244e\014\000\023\025\031\007\354STA\303NA\001\000\356e\001\007\343lTR\353AT\317FT\301TVGD\207EVA\001\002\277\204""\005\001\t\266\204\014V\177GPRICEA\001\004\270(\007\022\002\233\204\023llC\230\233\002S\006\373\255\003sB\267\205\002\000\003\263\205\004\000\n\252\205\013\247BBW\000\000\037\006W\200\205\022B\207ETA\000\001G\005\014\000\022\023O\217PBOPm\005\001\006c\014o\177dyDojiB\005\000\357Long\004\001Sho{rt\r\001Very\021\001\207CCI\000\000\362\206\004\000\007\346\206\013C\377DL2CROWS\340\000\006)\005\021\005\316\206\0224\0003BL\007ACK4\005\003\0107\007\003\017l\016\1773INSIDEL\001\360\004\0033\010\004\n(\017LINE\037STRIK9\002\004\007u\010\034\004\016n\017OUTy\005\004\004\265\010\370\004\013\253\017\320\230\001SINSO\007UTH\217!\004\t\374\010\004\020\367\017\377WHITESOL/DIER\212A3\004\n\312(\364\004\021\304NA\372\212\001ONED\017BABY\342@\003\n\331G\003\021\376:\017DVANCEB;LO\355@DLA\004\010?\010<\004\017\331nBELT\337\240\001\362`\360\003\005\344g\003\014+\017REAK\027AWA\312\001B\004\0054\010\004\014\376\326\204\016CLOSING\377MARUBOZU\207CDL\003\014\357\204\007\003\023@\017O\366\223 AL\336!SWALALO\001\004\014I\010\004\023B\020U\273\244\001\047ATT\332\205\001\242\000O\005\010C\t\274\005\017\311\206\016DARK\364\000U\377DCOVERCD\341L\003\013\340\206\007\003\022=\017OJI\200A\001\004\000\311\236\001\000\010?\010\026\004\236\207\025D\370A\000 \013\021\026RAGON\017FLYDp\004\004\t\260\010\004\020~\322\210\016ENGULF\373@\207CDL\003\006\337\210\007\003\r.\017V+EN\271`D\360\007E\004\013A\010\000\004\022:\025\301$G\004\237\241\0019\016\n\010\252\212\016\307GAP\272\211\001\276\211\001\272\207\002CD\341L\003\r\305\212\007\003\024C\017RAV\047EST\271\207\001\353CG\004\nF\010<\004\021\316\213\016HAMM\370b\003\003\330\325\213\007\003\n$\020NG\252\206\002NC\017DLHA\005\0053\t\005\014g\020\327RAM\256\204\001H\252\257\001IC\007ROS\343\214\001\003\010\201\t\047\002\037\001\360\331\214\025@\003#\r\025\026IGHW\300\306 \272\001\004\004\360\010\004\013\242/IK\353KA\323\214\002H\004\003MOD\000D\002\022\002\n\000?\t\005\0145\025\"\016\317\026\377OMINGPIG\203EO\367\"\004\010\262H\004\017\310\217\016I\377DENT""ICAL\3013\332\217\005\003\014\341\217\007\003\023@\017NN\205E\377\213\002I\004\0025\010\004\t$\020V\031E\245\253\001\202\204\006IN\005\t;\t\005\020\236\240\221\016KICK\306\207\003\003\004B\001Y\322\207\001\376\216\002\003\014\303\221\007\003\023D\025\047\016\376\356\221\025LADDERB\377OTTOMCDL\360\003\t\277\222\007\003\020\365\222\016LONG?LEGGED\351\211\004\003\013\020B\010\034\n\177\026K\001I\253@\221\000\004\004\0164\014INE\303\223\025\231\216\010\247\216\005\214\224\007\374\003\014\276\224\016MATCHI>\312\000OWCDL\003\0107\t\000\032\006i\027\242\220\005M\000\223\262\0011\n\006\010n\017\013OR\235\213\014M\004\013\300\010\004\022:\025\240\355\215\004G\004\236\213\013\003\017\326\226\016O\264\205\005O\372\255\205\014O\237\205\032PIERC\340\264\215\003\003\005\230\227\007\003\014\312\227\016RIC\177KSHAWMA\302\212\001\360\003\010\333\227\007\003\0173\020SEFA\377LL3METHO\rD\247\230\001RI\005\013D\t\005\022\345\230\016\313SE\300\273\001T\245a\304\227\001CD\341L\003\014\376\230\007\003\023@\017HOO\204L\001\225\221\004S\004\010A\010\004\0175\021R\003TL\267\205\003C\000\006\0036\n\006\n\311\017wPIN\253\220\001TOP\323\001\360\004\007\310\010\004\016\217/TALL\037EDPAT\312\271\001\234!\004\n\360\224(\004\021<\020\210aANDW\033IC\250\231\001ST\005\010A\t\005\017>\241\234\016TAKUR\207\224\001\003\003\370\250\234\007\003\n$\020SUKIG\rA\222!TA\005\0041\t\005\013e\017\367HRU\264\000NGCD\303LT\004\005r\010\004\014\245\017RI\302\261\225\004T\004\003\256\010\004\n\222\236\016UN\177IQUE3RI\301\226\003\340\003\t\245\236\007\003\0207\017\253\223\002GAPB\354\236\006U\004\013D\010\004\022\255\237\016X\273\236\001\007GAP\222\206\010\003\r\310\237\007\003\024\204\240\014\017EILC\001\000\262\240\005\001\007\254\240\014\327GCG\326\240\005G\220\240\023HO\033PC\001\000TR\000\003\204\241\005\016\002x\031\026\033\010\346\240\023KSPC\001\000\370\322\241\005\001\007\314\241\014MFCMF\370\370\241\005\001\006\025\rOCMOUl\000\001!\006OU\336\241\023MO\031\007\016\200\242\023OPP\240\236\001\001\003\362\242""\005\001\n~\357\242\014ORRELC\001\002\370&\006\017\001H\024SCOSH\214\000\001S\006SH\023\025\031\007\254\243\023R?SICRSI\230\244\005\001\007\036\222\244\014TICT\035\006\001\006\267\244\014?UMSUMC\001\002\351\244\005<\001\t\345\244\014VICVp\006\001\006\370\212\245\014\205\247\t\220\303\001DEFAU?LTDEMA\000\001\312\255\004\374\000\010\277\255\013DISABL\237EDDIV\000\000&\005I\375V\235\255\022DONCHI\303AN\000\005U\005\020\004\035\024SCz\262\255\010D\244\255\025DPOD\324\253\006\275D\306\253\024DXDX\312\005X\374\215\023\363\326\005DotEFI\200\000\000\314\257\004\000\007\300\257\013\245 \250 \035\005M\035A\226\257\022EMV\000\000\034\006\2103\237ERERI\000\000i\005R\351I6\023\231\257\005E\212\257\023EXP\354\000\000\256\005XP{\023qua\177lFISHER\000\003\370\262\261\004\000\n\251\261\013FLOOR\360\000\002$\005\r\001\205\261\022FOSC\365F\347\260\007F\330\260\025FRAC\207TAL\000\004{\005\017\003C\023R\207AMA3\000\336&\000\t\240\014a\271r\362\324\005\372\324\005.__\212\331\001_\361_\001\r\274\334\005\036\010get_\007opt\200\332\004\327\307\002<\010\371\330\001:\nL\250\332\003\240\305\002_s\330\267\002\265\321\002sp\010\362\315\317\001l\200\010D\027reprv\230\nst\002\013uni\342\322\001<\276\010\344\327\006flagl\007\302\001\000\275\333\t\201&\017\007\350\332\002\013\n\340\335\007\260&\222\327\001\376\275&lookbac\tk\316&\307\326\003_m\013\016\004Q\013\360\326\004.\210Frun\224Fs\357 \247\331\n\300\r\n\261\022/\001\250\334\010>\n\246\337\007HA\365H\216\206\005H\211\206\023HMAH\372\261\206\006H\255\206\024HT_DC?PERIOD\000\010\352\267\004x\000\017\346\267\0137\003HASE\000\007\320.\n\027\001\321\267\022t\000P5\000ORp\000\006i\007\023\003\037\025SINj\001\311S\370\233\007\300\000S\370\233\025\334\000TR\017ENDL0\003\003\006\327\007\003\r<\321\016;\002MODED\005\010\001\3701\014\010\010\223,ighLo9w\204\321\002\227\334\001IBS\000\000\311\272\004\374\000\007\275\272\013ICHIMO\303KU\000\005\047\005\020\004\242\272\022IM\211I\000\000Q\005M\317\211\023\221\322\t\225\322\004I\377ntegralK\207AMA\000\001""\344\273\004\000\010\331\273\013K\327CKC\034\005C\254\273\022KD\331J\000\000@\005DJ\017\023ST_KSTEX\000\003Tn\005\360\016\002\031\025\033\007b\023URTO\017SISK\001\004\302\005\001\013\277\014\017VOKV\330\272\005\000\007\314\275\013\247\264\001\337ARREG\000\006_A\240\353\241\001\000\014\236\276\004\000\023;\024_\351\324\002C\007EPTR\007\n\006@\016\n\r=\025\037SLOPE\243\007\n\002\215\016\300\n\t0\026\377\327\002?\010\217\330\002\217,NL\365N\363\005N\275\277\022LOG1\3410\000\002\233%\r\001\025\023ine?MAMACD\000\001\234`\340\000\004\372\300\004\000\013\362\300\0131\001FIX\000\000\004&\010\022\000\324\300\022b\001M\010\r\024\212\001\370\366\220\006\227\0015\024RKETF\207IMA\002\003\247\006\002\n\241\rS5S.\000S\275\225\006MA\002\007\314\r\037VPMAV\321\273\005\000\010\364\r\032\375\000X\327\322\002MA\002\003\261&\002\n\300&\016\035\007\2254\371&\010\025\366\331\001MA\375_\375\331\001.__get?item__\t\007\330\217\003\017MCGD\000\001\312E\014\000\210S?EDIANM\001\002\366E,\001\t\356LED\263\277\002M\001\004(\007j\236\277\027M\254@F\272\230\005MF\201\224\023\377MIDPOINT\020\000\005\201\204\005\020\004\303sI\206\004\001\004)\010<\330\300\001\035\024NMIN\264C\001\004\370b\006\021\003\036\026AXMIN\000\347E\000\0106\007\375L\251\205\0148\002 \n\212\025\377US_DIMIN\240\003\002\225\007\003\tK\0160\001M-\004M\342&\013M\362\025\360\007\243\206\023OMM\365OC\006O0\024ULTM\343UL\322\213\005\000\010\251\311\013NAT\343RN\275\304\007\000\010\031\014ONE\257NVIN\362\233\006N\344\233\024N?earOBV\000\000\257\312\004\364\000\007\243\312\013O\224\314\003Dict\367Out\261\332\002PERC\017ENTB\000\005\361\312\004\000\014\352\312\013\016-\004ILE\000\007*\013\030\000\325\312\022\036g\004RANK\000\010f\013\031\001\032\047\023L\211bPL\201i\000\013\231\014B,\002M+\003\202e\000\013\312\014P\215\241\001\234\373\005\301\311\024PSO\000\000\240%S^\214\312\023PVIP\252\237\006P\234\237\024\217PVOP\202\217\006\000\007\336,VGTPV\246\220\005\000\007\374\315\013Q\231\251\002\360\000\003\263\316\004\000\n\252\316\013RMAR""\272\327\235\006R\323\235\024ROC\000\000P\300\000\001\205\317\004\000\010A\014(\000+\00110y0\000\004(\007R100\340\316\022\340\\\001\034\010\014\025r\007/\024GER\373SS\277\262\001ELLRO0\002\t\256\006\002\020\202,SI\320\243\007\301\243\025\027RVI\000\000R\003\001\211%\017\000\364\306\023\245\243\006R\227\243\024RVOL\214\000\001A\006OL\2203\214\357\001\336\347\001R\347eal\000\001\265\312\002ARS\037AREXT\000\003\244\322\004\000\n\260\233\322\013+\000\033\007\356\321\022SI\223\310\001I\207NHS\001\000I\005\001\007@\014I\341N\031\0078\024;\006Y\023MASz\331\242\006S\325\242\024SMIS\315\227\006=S\311\227\024SQRT\000\001\375\005\374\014\000\313\023QZMOMS\354\001\002#\006ZM\264\212\024STC\364\000\000\321%T\340\227\023STDD\003EV\000\003\"\006\017\001\3143\366\341\001\372\341\002yF\000\003U\006OCHF\031\027\007RSI\255\342\005&\t\347\250\025\334\342\002O\t>\331SUBSUB\261e\001\006\354\247l\223\251\tSU\246\215\023SUP\203ER\353\234\002\000\007O\006\023\005\335sW\377AK_2PHPS\240\001\005\301\204\005\001\014\275\204\0143\001B/\003BmP\047\tBPN\027BU\222\264\001\340e\002\005\003,\n\030\002\213\027GAU\003SS\241\002\005\002\233\t\005\t\225\020\326\004\345H\233\nH\221\024\306\335\002Sha\007dow\240\322\001\004\003\241\322\002\017\003\240\322\005\304\004\007\022\010s\252\332\003\260\332\003\234\246\001op\373y_\346\331\005__dee\373pc\005\013reduc\177e__T3T3\347\332\004\374\000\006\332\332\013TANTAN\001H\000\001!\005\014\000\266\332\022\272\326\007\253\326\025\373\366\001\361C\000\002\353\333\003\000\010_Clo{ne\005\tOpen\000\r\177AndFill,\t\357Peek<\tUpdcat<\n\301\345\002v\002OS\000\004\216c\010OS_a\006\005\004Z\tO\273S_Y\006OS_S\010O\003S_P\007\264\010E\007T\002\247\tA\007T=\t=\007D\234\371\001D\000\003D\210\047cDD\232\006\004\004\375\010DD\230\006\333DD\225\010DDM\010OS\000\362\"\273\335\002\340&\311\335\002\336%\004\006O\t\353\335\001`\330%\367\335\002\323\047\206\336\002\321&DR\265\002\325R\251\010R\252\007R\371\rDR\252\252\007R\250\tR\201(X\210\"X\252T\003XO\tXQ\010XK\017XJS\010XR\nXS\n""\326(X\327\047UX\234\016X\327\047X\325)X\256H\000\242H\242G\346\016\240G\235I\275g\376\303\001\236\375\001\003MA\205\205\007\246\337\001\203\205\005\004\005\374\204\010\305\337\001\240\373\204\005\321\337\001\365\204\007\337\337\001\362\204\006O\366\375\001O\252\333\205\007O\354\204\006O\226\204\rO\350\204\006O\252\344\204\010O\343\204\007PH\002PC\010P\252E\007P?\016PG\007PF\tP\000H\010\253\340\001\230\377\001\253\340\004\000\010\216\207\007\276\340\005\220\207\005\000\004\t\215\207\010\345\340\005\220\207\005\365\340\005\216\207\007\207\341\005\217\207\006\200\357\340\002\367\207\006\375\340\002Y\t\267\206\r\236\341\002S\t_\354N\013\215\207\007SI\356\210\001SIN\000\000\004\333\210\007\253\341\001\331\210\005\004\005\322\210\010\312\341\001\321\210\0050\326\341\001\313\210\007\344\341\001\310\210\006SIF\t\277\210\006\333SI\352\207\rSI\275\210\006SI&\272\210\010SI\272\210\007\345\212\002_\205\342\002\203\212\006\000\223\342\001\200\212\005\004\005\371\211\010\262\342\001\370\211\005\276\342\001\362\211\007T\314\342\001\357\211\006T\231\207\002T\223\207\010T\224\207\007UT\215\207\016T\224\207\007T\222\207\tT\223\207\010\000\342\342\002\313\213\001\344\342\003\264\213\006\363\342\003\263\213\005\004\007\256\213\010\000\226\343\003\257\213\005\244\343\003\253\213\007\264\343\003\252\213\006\232\343\004d\003\000\217\343\003a\010\240\343\003d\007\006\007c\n\307\343\003h\007\340\327\343\003h\t\351\343\003\241\214\005\314\343\003TA_\000\316\343\004\223\215\005\335\343\004\222\215\004\003\010\215\215\007\200\344\004\216\215\004P\216\344\004\212\215\006\236\344\004^\007W`\002W\364\215\006D\227\344\001V\006W\261\214\014\264\344\001P\006W\201\215\007\034\314\344\001\262\006ETA\265\001\256\344\001\256\006\000\273\344\001\255\005\004\005\250\010\332\344\001\251\005\346\344\001\245\007l\364\344\001\214&OP\216!OP\243\007\313OP\263\216\005B\004\004\376\010OP\330\261\216\005\237\345\001\371\007OP\256\216\006CC\000\234\206\001\364\344\001\365\217\005\200\345\001\361\217\004\003\005""\351\217\007\235\345\001\300\347\217\004\250\345\001\340\217\006\265\345\001\334\217\005\232\345\006TA\001_\234\345\007V\006\237\345\006]\005\004\n`\010\310\345\006\000i\005\331\345\006m\007\354\345\006r\010\336\345\010|\003\340\345\t\000|\010\367\345\t\202\007\006\r\204\n\252\346\t\214\007\300\346\t\000\217\t\330\346\t\224\t\275\346\003\225\004\277\346\004\214\t\322\346\004\000\211\010\007\010\202\013\375\346\004\201\010\217\347\004{\n\243\347\004\000\230)\203\347\007\235$\205\347\010\230)\234\347\010\231(\007\014\000\226+\317\347\010\231(\345\347\010\227*\375\347\010\270I\340\347\004\000\272D\342\347\005\262I\366\347\005\260H\007\t\252K\243\350\005\000\252H\266\350\005\245J\313\350\005\303i\251\350\t\312d\253\350\n\000\307i\304\350\n\312h\007\016\311k\373\350\n\316h\223\351\n\000\316j\255\351\n\361\204\t\212\351\n\371\204\004\214\351\013\367\204\t\246\351\013\000\373\204\010\007\017\373\204\013\337\351\013\201\205\010\370\351\013\202\205\n\223\352\013\000\244\207\010\360\351\n\260\207\003\362\351\013\262\207\010\213\352\013\272\207\007\006\017\000\276\207\n\302\352\013\310\207\007\332\352\013\315\207\t\364\352\013\242\t\324\352\010\000\246\004\326\352\t\240\t\356\352\t\240\010\007\r\234\013\243\353\t\000\236\010\272\353\t\233\n\323\353\t\371\211\010\265\353\005\200\212\003\267\353\006\000\375\211\010\313\353\006\200\212\007\006\n\377\211\n\370\353\006\204\212\007\213\354\006\000\204\212\t\240\354\006\177\t\203\354\005\205\004\205\354\006\201\t\232\354\006\000\203\010\007\n\201\013\311\354\006\205\010\335\354\006\204\n\363\354\006\000\226\214\010\316\354\014\244\214\003\320\354\r\250\214\010\353\354\r\262\214\007\006\021\000\270\214\n\246\355\r\304\214\007\300\355\r\313\214\t\334\355\r\260\t\270\355\014\000\266\004\272\355\r\262\t\326\355\r\264\010\007\021\262\013\223\356\r\000\266\010\256\356\r\265\n\313\356\r\266\n\252\356\010\270\005\254\356\t\000\260\n\305\356\t\256\t\010\r\250\014\374\356\t\250\t\224\357\t\000\243\013\256\357\t\303\220\010\211\357\013\320\220""\003\213\357\014\323\220\010\245\357\014\000\334\220\007\006\020\341\220\n\336\357\014\354\220\007\367\357\014\362\220\t\222\360\014\216\251\tOJI\244\004\371\357\004\000\013_\000\247\t\375\357\005\242\010\007\t\231\013\252\360\005\226\010\275\360\005\020\216\n\322\360\005\206\014i\r_g\013\242\243\014\271\361\004\025__\013_Y\r_\243I\375\360\t\247D\000\377\360\n\241I\230\361\n\241H\007\016\235K\317\361\n\237H\000\347\361\n\234J\201\362\n\240\225\010\342\361\006\250\225\003\344\361\007\246\225\010\000\371\361\007\252\225\007\006\013\252\225\n\250\362\007\260\225\007\274\362\007\261\225\t\000\322\362\007\206\t\257\362\013\221\004\261\362\014\222\t\314\362\014\231\010\000\007\020\234\013\207\363\014\245\010\241\363\014\251\n\275\363\014\252\017\000\344\373\001\253\n\245\363\002\242\017\274\363\002\237\016\r\006\230\021\000\357\363\002\227\016\205\364\002\221\020\235\364\002\216\231\010\361\363\r\235\231\003\000\363\363\016\242\231\010\217\364\016\255\231\007\006\022\264\231\n\314\364\016\301\231\007\000\347\364\016\311\231\t\204\365\016\267\t\342\364\n\272\004\344\364\013\263\t\000\376\364\013\262\010\007\017\255\013\267\365\013\256\010\320\365\013\252\n\000\353\365\013\206\234\010\317\365\003\213\234\003\321\365\004\206\234\010\343\365\004\207\234\007\000\006\010\204\234\n\214\366\004\207\234\007\235\366\004\205\234\t\260\366\004p\n\000\223\366\005y\005\225\366\006x\n\253\366\006}\t\010\n~\014\000\334\366\006\205\t\361\366\006\207\013\210\367\006\211*\355\366\001\216%\000\310\366\006\000\016\240\213\t\202\367\t\245)\205\367\007\261\260\001\247,\200\242\367\007\257)\270\367\007\262+\320\367\007\233\016x\017_*u\r_i\024_k\r_d\017\273\213\t\001H\212\370\004\256d\214\370\005\253i\240\370\005\256h\007\t\000\255k\315\370\005\262h\340\370\005\262j\365\370\005\262\204\t\331\370\003\000\202\005\315\370\005\000\r\232J\377\370\006\225)\007\013\221\014\000\243\371\006\226\t\270\371\006\226\013\317\371\006\224\017s\020q\017\024\222P\275\372\003_l\016_g\020\233J\364\371\010\000\332""\206\004\366\371\t\333\206\t\216\372\t\342\206\010\007\r\345\206\013\303\372\t\000\356\206\010\332\372\t\362\206\n\363\372\t\210\245\010\316\372\014\226\245\003\320\372\r\000\232\245\010\353\372\r\244\245\007\006\021\252\245\n\246\373\r\266\245\007\300\373\r\000\275\245\t\334\373\r\260\t\302\373\002\254\004\304\373\003\236\t\326\373\003\000\226\010\007\007\212\013\377\373\003\204\010\220\374\003y\n\243\374\003\000p\n\201\374\t}\005\203\374\n\200\n\235\374\n\211\t\010\016\000\216\014\326\374\n\231\t\357\374\n\237\013\212\375\n\366\250\010\354\374\004\000\374\250\003\347\374\014\000\022\203\226\t\204\375\r\237\251\007\006\021\245\251\n\200\277\375\r\261\251\007\331\375\r\270\251\t\365\375\r\267\017\214\020_(\206\016\251\226\017\363\376\004_v\016_l\020\270\226\t\000\233\376\t\301\253\003\235\376\n\302\253\010\265\376\n\311\253\007\006\016\314\253\n\000\352\376\n\325\253\007\201\377\n\331\253\t\232\377\n\335\254\010\367\376\013\242\004\000\342\376\013\237\t\374\376\013\242\010\007\017\241\013\265\377\013\246\010p\316\377\013\246\n\351\377\013\245\rINE\244\010\000\330\377\001\231\r\354\377\001\224\014\013\005\213\017\227\343\001\210\014\360\252\343\001\200\016\277\343\001\235\257\010MARU\017BOZU\244\257\003\006\005\217\234\t\013\006\000\244\257\007\006\n\243\257\n8\006\250\257\007K\006\250\257\t`\006n~\nTCH\332\374\001OW\206\005\000\010\006\203\013\r\007\210\t\010\013\210\014@\007\216\t\360V\007\217\013n\007\222\013HOLD\000\223\006\t\001\211\014\016\002\207\n\t\006\200\r9\002`\177\nK\002y\014_\002\243IOR\244\375\001\005D\304\237\nM\007\013\260J\014\014\271H\007\020\000\275KG\014\307Ha\014\314J}\014\252\017\220\233\007\000\261\004\212\233\r\013\t\237\016\204\233\023>\t\227\016\211\233\016Tl\t\250\265\010O\331\215\010O\323\215\016O\324\215\rUO\315\215\024O\324\215\rO\322\215\017O\323\215\016\377PIERCING\000\254\266\003\006\005\227\243\t\013\006\254\266\007\006\n\253\266\n8\006\340\260\266\007K\006\260\266\t`\006\260\267\010RIC?KSHAWM\361\311\001\274\267\001\000\006\010""\250\244\t\013\t\300\267\007\006\r\302\267\n>\t\312\267\007\360T\t\315\267\tl\t\223\nSEFA3LL\270\376\005\337\270\003RI\010\013\234\013\000\r\014\243\t\010\020\245\014J\014\255\te\014\260\013\374\202\014\223\272\010SEPARA=T\351\210\001INES\241\272\003\006\014\000\223\247\t\013\r\257\272\007\006\021\265\272\nF\r\301\272\007`\r8\310\272\t|\r\260\tHOO\266\001\330\242\007\001S\007\010\251\n\014\t\250\010\007\r\242\013A\t \242\010X\t\235\nq\t\231\013R\334\353\002\326$\003HO\t\003\222\014\016\004\221\n\t\010\213\r\300=\004\213\nQ\004\206\014g\004\351IPI\365N\271\212\001T\277\277\002CDLS\000\007\007\340J\014\010\336H\007\014\327K?\010\326H\360U\010\320Jm\010\211\204\tTALL/EDPA\245\324\001N\215\204\004\007\n\000\206\204\n\014\013\207\204\010\007\017\203\204\013E\013\205\204\010^\013\360\202\204\ny\013\250\n\252\210\001ANDW\007ICH\254\005\010\010\245\013\r\t\246\t\000\010\r\242\014D\t\244\t\\\t\241\013v\t\213\302\010\037TAKUR\216\257\004\006\003\371\256\t\000\013\004\214\302\007\006\010\211\302\n4\004\214\302\007E\004\212\302\t\374X\004p\nSUKIGA\rP\220\303\003TA\010\004u\013\r\005z\t\000\010\tz\014<\005\200\tP\005\201\013f\005\203)_HRUST\355\214\006T\007\005\000\210*\014\006\215(\007\n\215+;\006\223(O\006X\224*e\006\225IRI\260\254\007T\007\003\000\226J\014\004\231H\007\010\227K7\004\233HI\004\370\232J]\004\260\306\010UNIQU\017E3RI\362\235\001\274\306\002\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\177AP2CROW\275\214\004\001U\007\013\240\n\014\014\245\010\007\020\245\013G\014 \253\010a\014\254\n}\014\223\311\010X\264\004\265\217\013\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\330\312\006EIL\330\312\001\000\004\000\274\267\007\t\001\257\313\005\004\005\255\313\010(\001\261\313\005\2404\001\260\313\007B\001\262\313\006\375\223\002G\222\270\007G\252\225\267\006G\211\267\rG\213\267\006G\204\267\010G\"\320\314\007H\344\214\003\003\001\227\332\001C\004\002\355\270\007""\000\t\003\342\314\005\004\007\342\314\010,\003\350\314\005:\003\351\314\007$J\003\355\314\006H\214\316\010h\001_P\010\305\270\raH\220\316\007&\002H\n\222\316\007KS\251\211\002\000\004\000\244\272\007\t\001\227\316\005\004\005\225\316\010(\001\231\316\005\2604\001\230\316\007B\001\232\316\006MF\231\316\001M\001F\374\272\007\t\000\356\316\005\004\004\353\316\010&\000\356\316\005\3401\000\354\316\007>\000I\007\334\331\001CMOX\310\236\002\004\000P\010OU\334\272\006M\005\004\000Q\t\034\000U\006(\000T\0106\000U\010F\tDF\010\242\273\rM\265\332\006\213\000\237\273\010M\266\332\007\rC\344\360\001CK\235\320\001\004\003\204\275\007\t\004\000\372\320\005\004\010\373\320\010.\004\202\321\005=\004\204\321\007N\004\036\211\321\006ORRE\256\205\002\004\002b\010\004\024\001\370\274\006O\005\006_\t\036\002a\006,\0020^\010<\002^\007\310\226\002OS\207\220\002\004\000\006\314\010SH^\007\005\004\305\t\034\000\305\006\000(\000\300\0106\000U\010F\tF\010\246\276\r\251\343\0075C\246\343\tC\246\343\010CR\226\333\002\003\001\022\202\300\007R\261\332\004\267\323\001R\263\332\016\047\002\367\323\005QR\272\332\tA\002\370\323\006T\317\324\002T\220\333\007\027CTI\336\277\006T\212\333\r\031\001\314\324\005\001T\217\333\0101\001\313\324\006\207\353\002\315\324\001\217\353\003\244\325\006\000\236\353\003\250\325\005\004\007\250\325\010\301\353\003\256\325\005\317\353\003\257\325\007T\337\353\003\263\325\006V\212\326\002V\260\010V\261\007\265V\252\016V\314\334\006CV\257\tV\016\313\334\007DEM\213\330\001\003\001\330\347\006\010\002\000\326\347\004\003\006\317\347\007\047\002\316\347\0043\002\310\347\006A\002~\305\347\005DIVTA_\003\000\026N\007IV\302\347\005D\004\004K\010\032\000\340M\005%\000J\0072\000J\006ONC\013HI\366\236\002D\004\004\253\007\t\005\261\005\000\004\t\262\0100\005\271\005@\005\273\007R\005l\007\020\227\347\002\216\347\n\216\347\t\206\347\020D\215\347\010\211\347\013\211\347\nUD\244\343\002D\236\343\010D\237\343\007D\230\343\016UD\237\343\007D\235\343\tD\236\343\010D\221\347\001SDX\302G""\260\346\006D\250\346\rD\256\346\0065D\253\346\010D\253\346\007EF\232\342\001\003\000\000\362\353\006\010\001\357\353\004\003\005\347\353\007%\001\345\353\0040\001\020\336\353\006=\001\332\353\005\350cE\264\346\010\010\001K\005cMA\202\353\014%\001K\005MA\322\353\007\270=\001I\007\344aEMV\234\007MB\337fE\004\004\233\010&\000J\006VG\t\025V\245\354\006E\251\352\001E\210\231\002\003\000\364\007\215R\237\207\006ER\262\343\r%\001\366\005RP\267\343\010=\001\365\006\365\352\007E\365\352\006E\355\352\r\325E\363\352\006E\360\352\010E\360\352\007EX(\345\336\001\003\000\216GX\340\336\006E\004\004\215H\321X\340\336\0060\001\216GX\337\336\007FI\003SH\361\002\003\003\343\357\006\010\004\343\357\004\003\010\200\336\357\007+\004\337\357\0049\004\333\357\006I\004\332\357\005F\007LOO\206\355\001\003\002\\\007\022\001\335\357\005\001F\004\006Y\010\034\002[\005)\002X\0078\002\004X\006\303\356\003F\225\356\001\251\361\005\010\002\273\005\256\356\001\202\366\277\013F\272\356\0103\002\263\007\333\356\001\262\006R/ACTA\327\224\001F\004\003\233\047\000\t\004\236%\004\010\234(.\004\240%=\004\237\047\000N\004d\010\225\212\002j\000\342\354\010\010\003_\007\241\205\016\340)\003[\007\252\205\tE\003\202FUNC\337_FLAG\357\362\001Fu\377ncTableA\177llocTA_\010\006wFre\361\363\001Get \001\337Handl\005\010In\337foTA_\033\000In\377putParam\357eter\016\007Loo\337kback \003Op\335t\021\025Out,\023Ru\337ntimec\005roKup\236\nG\t\006\245\004H\335\345\001-H\230\357\007HA\271\364\005H\321\207\r#\000\242\230\365\004H\324\207\0109\000\213\365\005H\232\215\002H\006\345\357\010HME\007\240\210\016%\001I\005\245\210\t\374=\001J\006T_DCPE\027RIO\312\364\001H\004\007\331\366\006\010\t\000\336\366\004\003\r\336\366\0075\t\304\005I\010\345\366\006]\t\016}\013HAS\212\350\001\204\003\t\001z\014\000\016\002{\n\t\006w\r9\002y\nK\002v\014\004_\002\204(P\177\000\222\207\002\212 \006\003\377\t\000\013\004\377\007\006\010\372\n4\004\373\007E\004\367\t$X\004\201HS\347\270\003\205@S\335\270\t\010\005\"\366\047S\317\270\017-\005""\356\047S\314\270\nM\005\004\360H\211\377\002Lk\006\006\006\361I\013\007\364G\000\006\013\362J:\007\366GN\007\365Id\007\202\r\007MOD\375D\234\002\013\001\201\016\020\002\000\203\014\013\006\200\017?\002\203\014S\002\201\016i\002\006\375\373\005IB\200\374\001\003\000\350\374\006\010\001\345\374\004\000\003\005\335\374\007%\001\333\374\0040\001\324\374\006=\001J\006\277CHIMOK\305\273\001I\000\004\004S\007\t\005Z\005\004\t\\\0100\005d\005\320@\005g\007R\005\300\006M\331\364\001IM\210\371\363\007\010\001\301\005M\363\363\r%\001\301\005Mx\370\363\010=\001\223&NPUT\254\212\006\377Initiali\rz\222\377\001KA\304\226\002\003\001\241\377\006\010\002\000\237\377\004\003\006\230\377\007\047\002\227\377\0043\002\221\377\006A\002Z\216\377\005K\226\375\001KCL\007C\210\377\005#KC\262\376\014#\000H\005C\200\377\0079\000\376C\006DJTA_KD\001J\232\007\t\000\233\005\004\004\227\010&\000\231\005\2601\000\226\007>\000\226\006STO\001S\027TEX\000\006T\371\007\023\002\250\006\000\004\007\374\010\035\003\201%+\003\201\047;\003c\0108P\tN\010\373\rST_I\007\202(|\025\000\321&URTOS\322\252\001\003_K\004\004\262G\t\005\270E\004\t\271H@0\005\300E@\005\302GR\005\307FV\350\374\001#KV\343\374\007\010\001\237eV\337\374\r%\001\302\235eV\346\374\010=\001\266\375\005\254\357\001AR\363RE\237\273\001\003\006_ANG\001L\343\364\001\003\014\315\377\006\010\r\276\376\004\003\021\306\376\007\200=\r\324\376\004T\r\335\376\006m\r\242\016|\020I\177NTERCEP\325a\010\305\007\r\006\026\031_\264\016-\007\355\324\013E\021\000\274\016j\007\276\020\207\007\303\017\273.e\025\257.\017SLOP\250K\r\002\243P\022\003 \245N\r\007\242QG\003`\023_\243Pw\003\260\244O\316P\205\204\006\312\377\001LN\336gN\242\215FN\351\376\014#\000\271eNs\010N\376\354\376\006LOG10TA\001_\003\002\260\204\007\022\001\342F\004\006\233\204\010\034\002\300\224\204\005)\002\210\204\0078\002\364\376\005\372\241\002MA\001C\270\306\001\003\001\300\210\003\003\004\356\373\006\010\005\344\377\004\000\003\t\344\377\007-\005\352\377\004<\005\353\377\006M\005q\007""\017CDFI\255\237\001|\001\007\000b\n\000\014\001d\010\007\005a\0131\001d\010@\001b\n\210Q\001c\t\304\n_\303\010\273\375\014\215!_\022\275\010_\270\n\227\374\006M\357\214\003\003\001\240(\000\227\226\007\024\002\344\333\013\047\002\231&\311\237\tA\002\215GoRKET\374\240\002MA\005\003\000\202H\n\004\205F\005\010\203I1\004\207FA\004h\206HS\004\203gS\362\250\002MA\005\000\202\362HS\357\250\007\025\003\304\r+\001\356FS\350\360\250\tE\003\344gV\241\377\001MAVX\234\377\007\010\002\320fVP\372.V\240\377\006\2643\002\305hV\241\377\007MA\303cX\017INDE\000\010\201\244\007\037\000\027\002\002\355GX\006\007\272\204\t\020\004\276\204\006 \004\275\204\010\0002\004\272\205\007Y\nV\010\306n\353\244\006\255\000\311i\200\354\244\007\221\244\010\275i\220\204\016\225\204\007\221\204\t\221\204\007C\001G\316\206\002\004\000\274\206\007\t\001\273\206\005\004\005\265\206\010\300(\001\265\206\0054\001\260\206\007B\001\251\207\006ED\002\376\250\003M\004\002\232\207\007\t\003\233\207\005\004\007\227\207\010\300,\003\231\207\005:\003\226\207\007J\003]\010PR\003IC\206\323\001g\000\006\002`\t\013\003d\007\000\006\007c\n2\003h\007B\003h\tT\003\207\211\006\032\356\205\003F\225\256\007MF\226\256\006\003\005\351\210\010\321F\333\254\006$\001\342\210\007F\332\254\007MI\037DPOIN\243\223\001\003\005\317\211\007\000\025\004\203\210\006\004\t\320\211\010\037\005\324\211\005/\005\323\211\007\000A\005\320\212\006s\000\267%\004\004i\n\327!j\t\000\007\006h\013\"\002k\0102\002i\nD\002l\007\216\232\305\001MIN\376\205\006\004\004\347\010N\006\371\205\013IN\362\205\0220\005\351\0060\004\347\010\330B\004q\010\377\206\004IN\345\206\005TA\003_M\004\007y\t\376\206\016\034\010\244\212\0146\010\000\204\007\306\207\006\205\t\333\207\006\206\013i\014\343G\244\001\225_Z\021_\\\n_U\014\367\213\007I?NUS_DI\341\003\006\002\000\335)\013\003\255\216\005%\004^\0172\003\337\047B\003P\335)T\003\332Hr\001Ml\007Mf\rkM_h\013M`\023M_h\013\013M_f\rM\340\t\271i\272(\260/\250\264(\257*\260\216\007O\271\002O\256\010O\252\252\007O\236\016O""\240\007O\231\tO\006\225\010UL\336\206\002\004\000\256\221\007\t\001\255\221\005\000\004\005\247\221\010(\001\247\221\0054\001\242\221\007B\001\213\377\005\007NAT\240\277\001\003\001\220\371\006\010\002\342\376\004\000\003\006\373\377\007\047\002\366\377\0043\002\354\377\006A\002Q\006\252\315\266\002N\307\266\010N\310\266\007N\301\266\016Nj\310\266\007N\306\266\tN\307\266\010OB\364\265\001\000\003\000\273\372\006\010\001\315\376\004\003\005\372\377\007%\001\356\377\004p0\001\335\377\006=\001\317\377\005OUT\354\237\t\375P\231\231\001NTBTA_\000\003\005\247\373\006\010\006\276\377\004\003\n\260\377\007/\006\250\377\004 ?\006\233\377\006Q\006\221\377\005o\004I\316\233\002\003\007\004j\r\035\000_n\013\n\005m\016\047\001r\013\3609\001r\rM\001u\014RANK\000\363\007\n\001\360\r\017\002\365\013\n\006\365\016<\002\240\373\013O\002\374\rd\002\206&L\361\207\005P\221L\352\207\013\010\005\372%L\374\207\007\366(L\010\350\207\n<\005\365\047L\345\207\013_\003\356\207\001\003\004\010\350G\204\002\347\207\006P\004\010_\r\345\207\006<\005T`\014\342\207\007P\225\271\002P\217\271\010P\220\271\007UP\211\271\016P\220\271\007P\216\271\tP\217\271\010cPS\377\303\001\003\000\242\204\007SO\242f\021S\347\240\r%\001\225\204\005S\354\240\010=\001\212\204\006\252\213\276\002P\205\276\010P\206\276\007P\377\275\016P\252\206\276\007P\204\276\tP\205\276\010P\230\242\002P\006\222\242\010PV\234\007\214\242\016%\001\273\205\005\221\242\t\030=\001\234\007\235\245\001PV\213\245\007\010\001\230\206\005\020\024\000\205\366\013%\001J\006T\375\364\007=\001\203\206\006~\344\262\001Holder\251\263\005yP\t\007\254\263\004QSTI\301\305\002\000\003\003\236\367\006\010\004\202\377\004\003\010\363\376\007+\004\352\376\004P9\004\334\376\006I\004\321\376\005R\275\300\002R\311\273\010ER\231\262\007R\303\273\016%\001\303\377\004R\310\273\tt=\001J\006O\360\250\001ROC\214\324\001\000\003\001\333\370\006\010\002\215\377\004\003\006\200\377\007\047\002V\005\300<\000\274\367\007A\002U\010\361\313\001^\000R1!0\333\237\001\003\004[""\t\026\001_`\007\006\006\000`\n \002f\007/\002\340\377\006M\005j\tU\n\010S\t\212\371\014\227\001_N\010\274\n\201\274\007\240 \300\217)\245\010>\017D\010\212*\316\371\006RO\377GERSSATC\007HEL\300\317\001\003\013\371(\034\t\232\047\000\005\016\214I&\n\231F<\n\256(T\n\340f\000\216\310\002\201\310\001\226\377\005\206\310\010\376\307\017\252\310\001\341e\202\310\t8\302\310\001\263\204\006\315\306\002RVI\212b\004\000\000\337g\t\001\341e\004\005\336h(\001\277\204\0054\001@\354GB\001U\010F\t\307f\233\307\016R\242\307\007uR\240\307\tR\241\307\010RVO\221B\014\004\000\234\010OLL\007\005\004\233\t\034\000\340\236\006(\000\234\0106\000\272\206\006est\357oreC\331\273\002Def\377aultSett\377ingsTA_S\001A\237\322\001\003\000\335\256\003\003\003\356\377\006\010\004\350\377\004\000\003\010\335\377\007+\004\330\377\0049\004\316\377\006I\004\307\377\005\204k\000P\t_O\007\256\377\014%\001I\007_\330D\t\242\377\006\301\314\002SI\257\340\001SI\001N\202\337\001\003\001\262\007\021\000X\006\004\005\255\010\300\033\001\256\005\047\001\252\0075\001\251\006IN@F\tF\010\242\r&\000E\007\247\010I\350\250\007\221S\217\315\007\345\315\007\334\315\016S\322\313\006\335\315\tS\252\317\313\007S\323\313\002S\337\306\010S\257\275\007S\200\331\306\016%\001\227E\336\306\t=\001\220F\314\265\002S\026\306\265\010SM\261\316\006S\300\265\016%\001J\006X\257\316\010=\001\343FQR\272\263\001S\004\000\000\306g\t\001\306e\004\005\301h(\001\302e4\001\330\276gB\001P\007ZM\337\230\002SQ\000\005\001S\010\n\002W\006\005\006V\t-\002[\006\320;\002[\010K\002\245\204\006T\233\266\001ST\210\226\266\007\010\001\205\205\005T\222\266\r%\001\377\204\005T\270\231\266\010=\001I\007DDE\271\316\001S\001T\005\001\337\205\007\t\003S\006\030\002\276\305\013+\004\240Y\006;\002\337\205\007J\003\261\007O\223\345\002S\201T\005\000\357\327\001\003\003e\010\024\001\367\205\006T\000\005\006\316\206\010\017\003\311\006,\002e\010<\002c\n\000\322\323\003n\002\276\212\t\010\006\261&\231\000\322\323\017/\006\000f\t\337\323\nQ\006\331\n\306\013\306\n""\305\207\r\211!\245_\305\t_\302\013\321\207\007U\376\231\001S\003UB\200\211\007\t\000\377\210\005\004\004\371\210\010&\000\240\371\210\0051\000\364\210\007>\000\362\210\006U\320\237\001S\001U\305\237\007\010\001J\006\265\237\r%\001J\006\260\237\010\234=\001I\007PER\360\300\002\305\212\001U\000\005\005\251\010\n\006\262\006\005\n\266\t5\006\300\006\360G\006\305\010[\006\311\212\006WAK_\0272PH\332\347\001S\004\005\266\213\007\t\006\000\273\213\005\004\n\273\213\0102\006\301\213\005C\006\302\213\007V\006Zp\nBr\006BPk\013B\261\316\006\202\225\002B\357\255\r\016\005g\tA\000c\013BD\300\316\007@\003U\244\355\001\266\215\001\366\001B\t\002\010h\014\016\003\346\tB\t\007\345\014:\004v\n\360N\003x\014c\003\352*GAUS\001S\202\005\010\002\353+\r\003\356)\010\007\354,\2008\003\360)J\003\357+^\003\356J\357GH*\357,H\360+H\3512H\267\321\006\270b4A\000\341KH\363(et\277\220\003\262\220\t\376\021\000ompatib\337ility\315\220\001et\376\375\314\nInteger\336\007\020Real+\003Un\373st\236\316\001Perio\375d\222\221\001hutdow?nTA_T3\000\002\351\376\006\003T3\222\345\005\003\004\350\377\007\030\000\337\377\004\"\000\010\321\377\006.\000\306\377\005T\326\371\002\003\000\257\360\001\003\001\026L\007AN\236\337\006T\004\005O\010\033\001\200T\005\047\001T\0075\001U\010F\t\240\006A\224\214\272\r\206\000_E\007_B\t\276\346\006T\n\271\334\003T\306\327\tT\310\327\010\003\006\366\010\312\327\010\3703\002\373\007\313\327\tTRANG\000\223\315\001\003\003\321\047\023\002\326&\004\007\330(\035\003`\337%+\003\341\047;\003\346&RI\375\335\002\tT\004\001[\010I\335\317\007\025\003\247\324\013)\003\302Z\006I\222\331\tE\003V\010\220\333\001TR\003IXS\t\217\333\006\024\002L\016\223\333\0063\002\032\262\010I\226\333\007TS\244\347\001\003\000\356g\003SF\360f\004\004\357h\032\000\363e%\000P\362g2\000\364f\361\342\002T\371\223\010T\352\342\007UT\342\342\016T\375\223\007T\345\342\tT\376\223\010\007TYP\277\264\005\003\005\236\205\007\025\004\245\205\006\000\004\t\251\205\010\037\005\262\205\005/\005\266\205\007A\005\204\377""\005\007ULT\204\330\003\003\003\351\376\006\010\004\336\376\004\000\003\010\316\376\007+\004\375\377\0049\004\363\377\006I\004\354\377\005\001V\226\231\002\003\000\313\377\006\010\001\275\377\004\003\005\252\377\007@%\001\235\377\0040\001\213\377\006=\001J\006H\373\352\001cVH\365\352\007\010\001K\005HF\334\355\014\300%\001K\0051\000I\007>\000\235\006ID\005Y\343\343\001V\004\001\240\007\t\002\244\005\004\006\200\243\010*\002\250\0057\002\250\007F\002\376\006O\035R\374\312\001A_V\004\002\203\047\t\003\000\210%\004\007\210(,\003\216%:\003\217\047J\003\n\346&W\236\370\002V\004\000\347\047\t\001\352%\000\004\005\350((\001\354%4\001\353\047B\001P\007\006\204\346\002VW\221\341\010\010\002Q\006\215\341\016\047\0020Q\006\224\341\tA\002\351\377\005WA\344\327\001\003\000\000\326\377\006\010\001\317\377\004\003\005\303\377\007%\001\275\377\0040\001\330\262\377\006=\001I\007VE\314\222\005WA\000\005\004T\010\n\005\\\006\005\t_\t3\005h\006\260D\005l\010W\005\307\006CL\220\274\005W\000\004\004\320\007\t\005\327\005\004\t\331\0100\005\341\005p@\005\344\007R\005\275&ILL\245\363\001\001W\004\001\300\047\t\002\304%\004\006\303(*\002\200\310%7\002\310\047F\002\236F\204\352\002\363IW\002\340\333\007W\212\345\016\244a\237E\217\345\t\274a\374\377\005\037ZIGZA\261\365\001\003\003\347\377\006\000\010\004\337\377\004\003\010\322\377\007+\004\313\377\0049\004\277\377\0064I\004_\006L\300\353\003ZL\316\346\t\010\003\006]\005LE\315\346\016)\003[\0057\002X\007\361L\332\346\007\237\354\001\257\347\001Stre\367amT\001\007.ope\377n_and_fi\003ll\253\216\004\232\216\003%\004\001\t\036\r\364\215\001 \360\215\002$\005\357\215\001^\003\032\016X\272\215\002 \006\233X_\023\022SF\211\215\001\240\004S%F\016\024I\333\214\001\035\005I4\023\254\214\005\000\230\214\005\364\004\001\013\361\013\354\213\003\350\213\004\245#\000\n\376\037\014NSTABLE\377_AUTO_PR\337EC_4U\002\0178V\303AR\331\213\001\365#\000\007\354+VH\tF\253\213\001\036\004H\343\023\367\212\002\373\212\003G\004\200\210\213\002\3351\277\212\003\304\212""\004t\004\322\212\003\031\022W\303AP\214\212\002\236\004\230\212\001\022\023MA\354\332\211\002 \005MA\262RWAD\000\251\211\001\350c\000\007\337k\355\210\006\365\210\007)\005\207\211\005\000\267q\251\210\005\260\210\006_\004\300\210\005\037\022\366\207\001\361\207\003\270\215\004\376\207\002J\022MAW\315\006W\000\311\024\220\207\003\214\207\004\316\205\003\000\n\310\205\013\317\206\002\323\206\003\372%\004L\351\205\025_ARRA\177Y_TYPES\274\347\002\377tion__ca\177ll_func\n\002\375F\001\005_get_o\357pt_i\266\347\001_va\347lue+\010\020\003pri\377ce_serie\237s_nam\003\0007\007l\365oX\000_\001\014data8r\0100\001\000\014str\223\010r\r\211I\336\335\002\305\002S\304\004\r\003\373\310\003S\367ERI\333\000DEFA\377ULTS_PAN\377DAS_DATA\362\246\352\001E\t\005!\004POLA\361R\022\n\013\003@\004TA_R\377eadLease\375_\001\t.__ent\357er__\006\016xit\336\004\017redu\246 cy\363th\357!<\rsets\337tate_\025\tWr\007iter\006\004\007n\013\n\013t\006\360\"\nk\020B\nm\017_Pyx\376\001\000Dict_Ne\337xtRef\345\002FU\377NCTION_N\303AM\302`\374\000\271a\003\001nn\325o\275\002_\312d_\311m_cOlass\322a\324\000m\266 \337_copy\004\001de\343ep\003\006n\001\323 doc\014\037\001\335%_e\321#\243\204\0028\001\231\204\001?flags_\223\204\022[\tYg\325%\252@in\231B_\245\204\026}_\257\204\003_main\240\001\317meta\263\003\350@moodule\022\002ro\375A0\362\204\002\201`\301\204\002\004\001ew\325\001\246\205\r\177_prepar5\002\375p\326 checks\371u\202 \n\001resul\350\261`\026\001\200c_!\001typ\374h\000+\001unpickDu\001\203\204\n_\013\016\247h>\002v\214\240\002\236\347!qual\235\005\205\204\004_3__\206\204\r\t\005ex\233A\261\000\276\334\204\001_set_\331\005s\370\301(\243p\267\206\001___ta\237_vers\331\207\002\013\000e\375s\216\205\001_unico\245d\273!d\323a\333\207\001d\305\263\003s\274\237\217\002\360@s_is\224`r\277outine\211@o\347kupK\001\255\"_su\267cce\301`ta\202cu]nW\000id_\001\014s\003\013\277retire!\002g\000\240\361\003\222\361\001\241\001\010\004\324\361\002\t\004\243\360\007\032\004\300\246\361\0173\004\226\361\022\024""\005\232\361\017i\004_c\364\337\243\t\r\005r\275\361\003_inf5o!\005u\311\243\004_p\314\243\002\321!ii\310\347\006\337!r\217\266\003_c\357\362\002\201_\305$\253A\223\266\002\202A\267A\030\004s\240\250\266\004\016\006x\r\343Aa\020s\277\244\004a\377_closea_\377higha_lo\327wa_\333\222\001a\231\004saV\314`al\000\0030\007\0031\205`\277olumea\265@l\307era\355\213\001\000\t\213\206\001lo\373ng\004\rshort\034)\t\025\rmax\000\020&\016A\004{qu\375Aannu\212\352\001\376\200\003ppendar\375g\000\000sarray\377sasciias\376\364\205\001asynciow.co\204\204\004sat\376\207\002\267atr\211Cav\314\000gue\005\005g\237Cbbb\002\004\377egidxbit\377bytes2st\177rc_keyc\306D\371c\311\215\003\264Cstick\333ch\234\000el\346Ccl\376\372\204\001in_trac\331e\232\366\001\371 ne\374\"cm\275o\036\004olle\257\216\002s}c\341!n_staF\000|\007\002\020\000nvert\337\211\001\357cycl\242\004dde\360\377\205\001\243e\317\216\002\374\205\005delt\377adescrip\376\225\217\001display\334\321\216\002\227\206\001doc\307@nt\356\300Bema\221\204\003emp\017tyen\325\206\001\315 \361\000\323 \177swithen\365@\376\357@efactor\332\000\003n\347 ow\005\004or\267mal\030\003wi\206\207\001s_td_ma\364\210\001f\204@\351d\362\204\004\010\001k\001\010lim\343it\035\001!\007\234\205\003fir;st\004\004lag\231\213\002\235\213\003#lo\303\207\002\363\207\001\344\220\001_\360A\004\002p\354\205\001\r\002\355!\026\002obj\322 \205\221\006?\003\224\221\005\335\220\001\241\221\005s\233\221\001\225\221\003\320\271c\006\007\203\221\002\272\221\001p\347\371\005sg,\222\371\001\000\002sh\236\372\002h\351@\306\205\001\373hi\326\275\001ylenh\356\252\306\002iid\266`imp\373or\357`rrori?nindex\227\207\001c\t\250\220\222\003\357\221\001\000\007s\375\221\025i\272\254\003i\363s_\253B\375\215\001skkc\376\324\207\003keykeys\237kijun\013\004o\000k\375w\226\205\001leftba\273rs\235\000gth\366\"m\327ove\325\222\002l\263\373\004lo_wlowe\313@1\245\210\003Wma2\001\0053\n\0054\023\005\376\323\214\001maximum\367max*\004emom\271iv\004\006\000tre\303\374\001n.p\000mis\323\000g""\000\004\300\205\001\375s\200\216\003msgmul\377tipliern\274\367\223\001\373\223\001dtup\311 a\277nnbdev\000\002d^\006\003upno\302\217\001s\261\300\001]_\255Inum\336\224\003s\006\001p\351\224\006\010\003\360\374\002\025\001ber\034\001\373py\234coffse\275t\000\003onre\354\214\001e\300\353\234\001\357\234\001\253\257\001\231\212\002\363\234\t\263\206\001atGoro\337\375\001\317\225\006\322\225\014su\007\177ordered\250\215\001\377outoutar\347oon\315\257\001\004\005upo\177utbearp\373!\270\007\002\362\207\001\021\001ull\r\005d\177outfama\002\002\273st\t\003stk\023\001i\267she\351\215\001ha\330\212\002o\317utha\334\212\001\004\002lo\361w\014\002\321\002\027\000ighs\373top\001inpha\243se\241\216\002\224\261\002\000\007_\334\226\001o\237utjou^\002\321bs\353en\013\001s\302\001kst\277signal\035\001v\371o\000\003\t\006leads\263inW\001\317bba\357\000u\357tlowt\004mac\230\315\001\003\001\266\205\002ut\016\001I\006m\336\343\003maxo\026\001xi\365d\000\006x\223\005middcleS\004\364`&\001in#\004|\004\002 \007nusviG\001\377omentumo\177utnbele\n\001\377outpivotX^\003\003\005\371\005pl4\004p\270B\222\003\000_\253\224\0022\001u\313\221\003\000\010s\324\021\003\000\004s\352\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\236\206\002<\001win\345g\254ds\010\001\260cten\347kan\362C#\005tri\363gg\352b\221\twt1o\377utwt2out\277zigzag\245\000d\203as\267\211\002\274\211\002\323\233\002\301\211\007\320\211\002s\337penet\313\217\003pe?rcenti\335\214\005\252\221\003\277spolar\003\000p\024\237\234\002\244\234\0020\252\234\0021\251\234\t\260\234\016\343\234\003\361s\324\234\002\003\000\351\215\001tyra\047nge\215\226\001\006\000k\212\222\003\211A\372\215A0\222A1repl7ace\305\226\003sr\230\000\321\267\001\246\275\206\001t_\361\224\001\370\000h\304\211\002r\003oc\237\211\004\007\000\240\211\004\021\000\241\211\004\033\000\340\242\211\004%\000\205\215""\003.\000j\004uns\377schemase\357cond\340\004elf\374\332C\363\217\004sensit\037ivity\221\236\003\273\226\001\325\236\006\200\352\220\001\314\226\001\255\214\t\006\007\274\236\002\353\226\001\257\214\007s\343et\235\226\005\352\312\003\223\230\001sig\340\203\000\301\206\002\252\216\003\314\206\003\362$kip\301_\207\216\002\320b\313\216\004\006\003\224Dlo\003wk\r\010\326\216\005\201\204\001\331\216\002\212\204\001R\004wlow\311Dma1\001\006\3052\013\0063\025\006\333\213\004\200\221\002le\377velstart\370\262\240\002\327\235\002\335\235\001icmet\377hodstdde\335v\242dtop\002\005r2\352\253\222\002s\305\250\001k\014\006eam\373sy\327\272\003talib\341.\335\230\001\005\000\337\204\003\231\226\003thr\377eadingti\177meStamp\005\001\250\025\004\020\000\277\226\0031\013\0072\026\0073\377to_numpy\370\357\232\001\362\232\002\322\230\004updat\321e\000\003\227\227\002\013\003s\330\206\002us\240\365\241\001\262\237\003\230\242\002\345\003\362\231\004v\361\221\003v\364\372\225\002\000\003d\222`sorw\247arn\000\001\270\316\001w\277\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\276\371\005\r\320\r\036\230\303b\030\330\203B\345\344\002\001\006\031\230\352!*A\377\320AX\320XY\330\010\267!\240\035\226\333\002\010\035\225\344\001\"\273\240,\010\003\032\230,\247\211\005\036\377\230o\250Q\250h\260a\377\360\n\000\t*\250\021\330\377\010%\240^\2608\2701\357\270A\340\010\377\333\001\010\t\330\376\342\333\001\033\2307\240%\320\047\375;\026\000K\300|\320ST\363\330\014\343\213\010\204\334\001\032\320\0320\376\353A\260(\270)\3006\310\377\026\310r\320QY\320Y?e\320ep\320p\243\356\003\223\364\004\000\236\361\004\233\275\004\270\272\004\371\377\004\225\372\004\340\302\004\220\361""\004\261\326\006\377\330\020\023\2208\2303\230\227a\330\024\211\341\001W\263A\221\341\002\330\317\024)\250\021\212\335\002\374A\010\013\377\2108\2203\220a\330\014\277\037\230q\320 :\216\000<~\324\273\001Z\320Za\320a\344\227\001\276\255\347\001x\220|\2402\306\210\001\200\257A\330+,\374\200.%\344A \363\240\t\306\342\003\233/\240\177\260a\373\260q\2231+\2501\250A\377\250X\260Y\270f\300F\377\310\"\310H\320T`\320\035`\323\277\003x\320x\225\267\003\316\360\004\307\360\004\370\231\355\013\216\317\006\332\20035\260Y\270l\377\310)\320SU\320U\\s\320\\\211\235\001\315\200@&\240Q\355a\347\032\2508\274\346\001\251q7\260q\363\270\001\244q\225\340\003h\260i\270\177v\300V\3102\310X\233\216\002\016\372\276\003y\320y\330\370\003\320\370\004\321\362\004\351\332\013\366\225\317\004b\002\353\20236\260i\270\377|\3109\320TV\320V\247]\320]\234\221\001\336\202@\047\260\346\001\"\273\240+\347@Q\260a\272\205\0218\370\363\210\003\267\205\017\264\354\002\250x\260y\300\177\006\300f\310B\310h\344\236\0027n\320n\261\222\001\320z\355\367\003\345\367\004\250\323\325\004\215\356\013\241\314\004c\332\20047w\000\014\377\310I\320UW\320W^\277\320^`\320`a\357\204@(\177\240q\330\010#\240<\326\000|\206`\313\207\0219\270\021\270!\306\207\021\376\335\344\002\260\010\270\t\300\026\300\237v\310R\310x\252\237\002\305\275\003{\003\320{\202\367\003\372\366\004\265\325\004\363\366\004\260\323\004\361\341\006\352\215\20738w\000\034\353\311\001X\320X\347_\320_\272\223\001\200\207@)\250\001\177\330\010$\240M\260\030\364\001>\334\211\021:\270!\2701\327\211\021\210\346\002\3765\000\031\300&\310\006\310b\003\320P\255\254\003\211\377\003\236\234\006\376\307\013\233\264\004\275\320\004\372\204\377\004e\375\20449\270\031\300,~\223\311\001Y\320Y`\320`\204\244\001\004\222\211@\334\213#A\322\213(\237\376\003\237\240\006\262\236\004\255\307\004\370\211\346\013\264\343\006\333\212\211+\250!\330\010\237&\240o\260X\303\357\002\201\216\020<\257\270A\270Q\373\215\0211\326\361\001\260\3378\2709\300F\201\304\001R\320\177RZ\320Zf\320f""\266\375\003h\336\331\006\356\342\004\243\350\004^\221\375\001^\002\224\317\004\364\332\366\006\304\2153;y\000L\320PY\377\320Y[\320[b\320b8\321\261\001\270\215@\353\200&\031\230\036\211\235\004\233\220\004\370\345\200+\377\335\004\262\200^\340\010$\240F\373\250*\233\351\001\014\210E\220\025\357\220a\220z\323\365\001\033\2301\374\371\360\001\352\217@,\2501\330\010\047\377\320\0477\260x\270q\300\301\001\307\222\021\243\364\002\302\222\021\254\363\001\253\362\001I\300\377V\3106\320QS\320S?[\320[g\320g\223\275\003\245\336\003\340\355\323\004\255\310\013\206\352\013\260\336\006\217\2223<\270I\373\300\\\302\311\002\\\320\\c\320\371c\223\246\001\203\222@-\250A\330\010?(\320(9\270\030\212\364\001\340\224\021\317>\270a\270\263\222\022\302\364\001A\260\377X\270Y\300f\310F\320\377RT\320T\\\320\\h\237\320ht\320t\375\325\n\321\333\004PF\216\323\001P\002\216\251\022\310\333\006\254\2243=\201\000\377l\320R[\320[]\320O]d\320d\237\252\001\240\224@.\342\236\001?)\320);\2708\244\365\001\375\226\021\351?\313a\370\226\0214\235\364\001\260h\270\337i\300v\310V\346\223\002]\320\177]i\320iu\320u\260\325\n\350\377\344\004\310\351\004\327\342\022i\307\325\001i\002j\272\247\2224>\201\000|\320S\344\224\003e\363\320e\322\341\001\275\226@2\260\021\330\377\010-\320-C\3008\310\2131\310\231\231\022C\331\367\002\226\231\020\364\222\002\270\367(\300)\315\205\001W\320WY\377\320Ya\320am\320m\000\345\224\006\343\324\004\360\273\004\306\327\004\225\212\004\277\327\013\275\363\006\347\2303\335B\202\000<\320W\275\216\003i\320\351i\306\333\001\333\230@6\320\267\0011\3201\377K\3108\320ST\320T=U\272\233\021G\300q\310\374\226\022\316\214\002\377\270h\300i\310v\320U~\320\204\003e\320eq\320q\347\257\006\000\275\233\004\355\331\004\376\362\004\227\342\004\251d\367\362\004\244\300\006\207\2333\347F\300i\374\273\001\317\205\003m\320m\356\351\245\002\010\017\210\202\2339\014\000\t\n\322\222&\025\322\250\007\014\001\010\353\235\004\323\2221\204\225\022\364\233\331\013\327\362\013D\372\367\001D\003E\003\374\311\2353""\223\223\024y\230\014\240B\240\377h\250i\260|\3002\300\307X\310Q\324\2350\306 \372\207\047\030\230\005\016\236\253\004\014\001\007\263\240\004\370\2073\326\372\004\353\351\013\200\225\347\004\216\347\004\204\363\004\316\360\013\361\312\006\232\2403\275\210\021\340?\010#\2406\250\031\277\374\001\266\217\n\271\032\330\356\004\000\034\010\017\210\210El\377\270,\300b\310\010\320Pp\214B\305\333\002\230\243,\365\240\"|\3001\357\240*\340\343\214o\203\241!\215\330\002\267\245,\203\241#\014\300A\340\376\240*\203\217o\222\241!\354\2001\360\234#<\300q\376\352\234+w\320wx\360\000\000\003y\001\256\307\013\222\370\004\267\322\004\347\335\004\353\217\004\246\346\006\220\254\210J\353\247\n\215\2031\201\252#L\305\215\023\215\252\024q\003\320q\362\247\006\212\310\013\204\370\004\342\374\004\245\353\013\335\345\006\036\277\251W@\320@S\353\253\001\234\254-\330\245#\317\034\300W\310\271\237\022\351\245\026u\320\301u\223\217o\354\245!\254\336\002\302\256,\354\245#,\300\005a\347\245*z\232\250\005\256\321\004\330\344\004\241\352\004\374\376\004\200\232\352\013\317\344\006\305\245W\340\335\002\306\213\201\220\230o\315\256!B\377\320BT\320Tk\320k\254\366\375\003\302\306\004Z\002\227\263+\016\235\263%L\343\310\014\356\260\005\253a\301\263\n\014\034\320\373\034-\220\264\003\330\014\032\320\032\236\254\261\001H\260A\330\310\263\033\232\227\001\360\017\000\000~\001\330\263\004\312\263\013\226\372\013\245\330\013\240\201\375\004\277\346\004\253\351\004\326\364\004\210\375\004o\232\357\001o\273\003x\241\357\001x\003E\274\273\001E\273\004K\303\273\001K\004M\312\273\001M\273\004W\321\273\001W\004`\330\273\001`\273\004k\337\273\001k\004q\346\273\001q{\004s\355\273\001s\004t\004\364\263J\376\272\225\005j\270\014\300B\300h\377\320N^\320^j\320j\307l\320l\376\237\001\322\264\001\322@U\320\363UV\330\266.\373\217%L\320PQ\000\244\262*\361\354\003\342\375\004\316\362\004\351\354\013\342\375\004\300\362\004\271\362\004\370\324\375\004\250\365\006\215\262WB\320BX\320_Xj\320jk\334\200VI\263\372\001\035W\333\264*""v\320v\347\325\003\243\357\004\201\344\004\200\236\306\004\344\367\004\243\357\004\363\364\004\254$\225\357\004\304\351\004|\271\002\245\200\222\276\254#\\\310\031\336\244\002\\\000\275\254,\250\265\003\236\372\004\262\316\004\241\320\013\265\265\004\335\361\004\327\340\004\240\273\364\004\327\340\004\350\377\006\256\254X\304\2035\016\247\237%<\376\363\314\001Y\320YZ\330\014\033{\320\033\362\271\001X\260Q\330\342\211\n\000\r\010\302\237\036\276\364\003\224\372\004\360\374\013\306\257\004\275\364\004\215\372\004\200\212\242\004\320\356\004\323\377\004\206\372\004\366\211\013\314\377\013\351\374\004u\356\236\372\001u\003~\245\372\001~\003J\356\300\306\001J\004P\307\306\001P\004R\336\316\306\001R\004S\004\316\237Ro\270\367\\\310\022\305\244\001c\320co\237\320oq\320q\222\274\001\332\211\004Y\377\320Yp\360\000\000q\001P\234\343\004\315\263\004\254\210\004\336\352\004b\332\373\001b\270\213\005=L\374\307\001L\004M\004\364\301+\216\243&\335<\236\302\001_\320_\256\341\001\360\000\007\000w\001\334\316\004\250\324\013\243\375\004\226\245\007\324\243\t\001\014\335\202)\321\302\n\320\302\004\374\326\004\274\231\004\372\375\004\200\241\004\335O\350\375\001O\003Z\357\375\001Z\003\264\251\365\004\304\362\004t\204\376\001t\003\346DC\246\246\312\001C\004\252$\337DX\273\312\001X\273\004Z\302\312\001Z\004d\311\312\001dt\242\312\005\234\312\004\177\336\312\001\177\004A\246\312\001\357A\005B\005\330\243_B\320B\000\201f\311\372\004\220\327\004\366\377\004\337\217\004\202\351\006\313\202.\352\215(>\201\260\004\360\000\000u\001\336\352\004\253\330\004\000\316\222\007\317\\\373\301\026\264\374\003\227\336\004\374\360\004\256\267\004\240\323\004\272\346DB\263\363\001B\003P\272\363\001P\033\003Q\301\363\001Q\003\365\376\004\220\374\004\340\360\004\272\355Dz\344\363\001z\003@\232\316\001@\351\004\236\316\004\245\205\004U\257\316\001U\004a\352\266\316\001a\226\316\005i\304\316\001i\004j\371\004\252\302J\204\250\022B\320BZ\320\003Z[\272\220\215\324\231\013\204\303\004\265\326\004\375\302\004\276""\240\004\364\202\250\013\300\374\004{\262\216[[\320[\\<\217\227.\221\236%\\\320QR\213\227)\273\305\026\240\322\307\n\344\3135\212\377\004\323\210\004\366\323\013d\274\371\001d5\003\375\323\004w\312\371\001w\003\366\323\013\307\214\004\361K\352\2264\231\306\024\377\226\037C\320C\\\353\320\\\220\266\001\330\211\241U]\320R\002\273\307\002\014\274\310(\324\310\n\336\341\004\200\332\013\245\302\004\222\227\004\350\267\374\004\305\217\004\322\371\004K\263\374\001K\003L\034\200\2604\340\310!D\300A\203\231V\321\252+\374\310\006\240\224\227\013\224\260\013\225\374\004\227\371\004\231\265\004p\332\314XD\273\320D\322\206/\n\000\t\225\246%^\360\362\323\024\247\315\026\213\323z\255\203\"\320D]\320\237]v\320vw\353\222.\236\231%\036\373\320W\270\301\002\014\027\320\027(\313\250\001\274\324\001\330\000\t\213\305\035\360\000\207\000s\001\343\302\013\301\311\004\265\307\004\247\276\006\360\017\000\000j\002\364\264\013\376\375\004\373\222\004\216\217\004t\205\376\004\241\211\004l\353\267\001l\003r\362\267\001\343r\003\207\223\006\264\307K\366\267\005k\270\034\337\300R\300x\310\202\335\001+E3\300Q\203\331.\232\303$|\310\262\316\022\252\303\026\000\257\222\t\260\226\013\343\355\004\231\376\004\255\314\004\221\341\004\356\267\004\267\331\004\313u\002\364\302W,\370\2001\375\326#\r\300\016\251\243(n\320n\214\356\006\321\333\013\225\356\004\224\327\004t\332\305\004\341\253\004p\341\314\001p\002q\326\326W\013-.\342\250TA\350\250@\204\3123\372\350\004\215\336\004MG\221\277\001G\003\265\251\004\313\232\004Y\246\277\001\353Y\003\347\234\004m\264\277\001m\003s\232\273\277\001s\312\232\005v\003\226\250k\205A#K\240=\205\344\001\330\340\340$\364\331B\010\241\325s\366\235\332\032Z\250\351\346\001-D\320D\217W\320WX\210\332\001\353\200*\314\252Gx\000\267\332\013\312\334\003\212\272\013\247\315\004\371\340\004\333\365\004\240\315\004\323\306\004\240\210\253\004\211\356\006\252\336P\253$\350\212.\014\234\220%\033\234\330\276\014\375\224&m\320m\367\2717\210\242\004\177\326\350\326\001\177\002\265\230""\004L\343\306\001L\003\235N\352\306\001N\003O\351\224K\235\260\014\310\272\207\355\001.\261\225\013 \240\r\215\352\002\010\247\035\230X\310\343\001\221\350\033\014\207\350%J\376\272\270\001\033\230>\250\021\250(\177\260!\330\014\032\230.\356\220\004~\233\350\030b\320bg\320g\351\312\003\037w\360\000\000x\256\277\005\244\253\022\260\333\006\237\360\000\000f\002\256\350\013\3102Xn\316\311\001X\003^\325\311\001^\003\363\244\004\272\335\263\004q\352\311\001q\003r\324\210Qf?\250G\260?\300,\254\337\001\345\344\003?^\200A\33001\236\353\010\327\201+\367\n\000\t\251\346K^\320^c;\320c\201\320\003s\320s\327\327\003\277\340\004\240\346\375\013\343\377\004\317\327\004\312\216\004\226\366\004}\300\334\001}\355\002\330\204\004@\003\303\346PV\2507\363\260!\374\200>\304\344K`\320`e\377\320ek\320km\320m\000\373\327\003\324\372\004\324\265\013\243\347\004\231\345\004\326\325\004\250\314\004\250\263\004\014\222\207\004\257\314\004B\003\342\344P\373\200C\341\342L\336\206\026\300\200\214\013\302\345\004\267\343\004\237\307\004\254\360\004\311\260\022D\003\370\347\357P\275\203C\220\343Mc\320ch\320\177hn\320np\320p\352\311\003\000\310\307\004\303\360\004\271\356\004\244\233\013\320\372\004\331\272\004\261\323J\345\343\033\316\204\206@\014\000\t\260\354&\352\265\t\031\320\017\031*\250!\252\361\001\321\300\005\322\354\020\220\206@@\345\300\004\276\326\004\241\250\004\216\256\004\251\226\004\332\265\022l\250\206Kx\351\326\003\261\213M\236\331)\030\320\030)\375\216\005\374\353/\275\355\021a\320af\320f?l\320ln\320n\257\340\003\247\340\004\000\341\344\004\313\342\004\343\357\004\330\355\004\376\260\004\214\250\013\205\261\004\303\331\004\272\334\221\004W\324\331\001W\003a\333\331\001a+\003g\342\331\001g\205\217\005j\231\331Q\373\216\001\037<\270|\3102\216\342\001\313\260\001\300\216;\007\016\000\t\365\353&\306\273\047\241\354\022\223\207@\356\331\022\245S\327\334\001S\216\264\005\364\221\022{\372\334\001{\253\003D\360\306\001D\350\273\005V\376\306\001V\r\004\203\270\004Y\004\311\243Q\234\222\016""\232\343\003\367\366\0038\315\347\004\311\375\006\304\222\001F\300a\350\221_\356\327\047\370\260\222\031\222\277\013\224\366\006\360\000\000d\002\350\263\335\004\254\304\004\277\267\004H\200\340\001H\003J\356\207\340\001J\003K\366\221ZG\300q\374\326\2249\260\334L]\320]b\320b\377h\320hj\320jr\320\177r~\360\000\000\177\001\344\370\004\000\320\200t\244\377\032\221\225\006\210\201<\314\323M\376\224\035\211\225\013\360\364\006\237\360\000\000g\002\362\313\004\260\317\004E\246\214\345\001E\003\331\263\004\267\317\004N\310\224ZG\303\320G\377\375\003\202\342\006\370\231.\357\341$<\310\341q\361\341$\366\203 \213\235\013\201\352\006\360\000\000\203r\002\313\311\004\205\345\004\237\277\004\375\321\004\231\235\004Y\034\273\3474\372\203#I\310\021\275\2349\271\333%\206\372\022~\314\333\020_\320_d\320d\271\322\004\370\247\302\020\330\217\013\305\365\006\360\000\000h\002\330\336\241o\371\354\003\376\234\00523\234\327\010\"\240?-\250q\260\001\330\242\242#\357\236Q\374\371\233\212\212\345\032V\2509\260A\200\003A\330\203\201;\244\357&\361\275\017\340\224\024\266\231\212\252\357\024\234\373e\273$J\320J\331\377\003\354\2104\020~\246\224%^\310=\320XY\265\321\013\336\233\334\010\014\035\320\035\306\232\001x\260\003q\330\000\t\346\377\031\234\235\026\227\350\004\333\357\004\251\276\006\337\360\000\000p\002\313\326\006\360\000\247\000|\002\223\221\004\312\224\004_\257\362\001_A\003\267\334\004\324\227\004\323\247\004\340\311\004\242\334 n\344\334\001wn\004t\353\334\001t\004v\362\334\001wv\004@\320\315\001@\005I\327\315\001wI\005W\336\315\001W\005]\345\315\001\367]\005_\354\315\001_\005`\005\376\253\224bk\320kw\320wy\003\320y\376\377\003\245\371\004\355\323\004\242\350\004\331\343\013\301\333\004\177t\002\200A\33034\320\340\010\330\227\263\010\331\253 \371\277&\021\330\320\304#_\320\361_\331\253\023\201\243t\323\347\032V\250:\260\361Q\272$\343\212\006\352\212\010Y\240a\330\351\010\237\256\033\371\200E\007\300\263\005`\320`\316\227\200\247W\250I\376\200@\260\212B\047\310\377\026\310r\320QY""\320Y\277b\320bi\320i\327\330\004\360\017\000\000z\001\325\322\013\241\361\004\374\377\004\276\352\0040\250\373\013\360\255\004\313\332\004\237\225\004F\003\352\360P\271&\177I\320I\\\320\\]\232\350\010\037$\240M\260\021\203\371\001\241\263\"\303\307&\007\033\300K\203\225\023\264\222\023\355\250\023\242\243\013\350\234\013\320\316\212\013\232\350\004\336\275\004\214\266\004T\204\376\001T\003z\241\350\004W\204\314QV\250;\260\227\266\001\0373Q\320Qt\272\327\002\370\362\004\272\332\004\364\254\332\004\243\326\004]\204\351\001]\004^\004\374\205\2639\310\366$\320GX\320Xn\017\360\000\000o\312\330\005\311\357\004\234\347\004\227\342\007\001\014\275\220&\300\246\032\317\376\004\263\334\004\371\237\004\226\353\004\236\334\004\355G\204\353\001G\004\376\006\360\000\000\263^\004\214\330\006\372\310\001\004x\247\353\001x\272\201\334\005H\214\334\001H\005N\223\334\001N{\005P\232\334\001P\005Q\005\214\367P\006\230\264\00545\210\212\001\212\226\004\375\300\010\377\211#\230\266B\377w\300f\310B\310h\320\271V\326\213\215\244\374\032W\250J\205\205\0024\047L\310A\347\2706\361\345&=\251\372\001\225\254\t\377\027\220~\240Q\240h\250\201a\236\274\020\376\253*\301\301\004\210\342\004\207\311\004\257\372\006\360\207\000\000m\301\223\005\233\257\004\207\361\004\223\251\004U\246\365\360\001U\003\302\223\013\304\306\022\177\237\361\001\177\360\224\361\005\221\346\004\342\250C\356\226\020\340\010%\240\376\250\210\002\330\010\014\210E\220\025\377\220a\220z\240\021\330\014\377\034\230A\230V\2401\330\347\010\017\210\350\257\007\350\254\te\320e?q\320qs\320s\205\360\003\227\341\004\275B\216\223\0015J\310!\251\274_\016\340\270\371\023\335\341\020\370\274\022\247\361\004\245\250\2315J\320\217J^\320^\370\266\003\270\377\004\343\327\007\010\234\261\244\017\245\237\nW\250A\237\223\035\340\350&:\377\300W\310J\320Vb\320\337bp\320pq\300\367\n\014\031\377\230\036\240q\250\010\260\001\001\330\316\354\030\365\262\n\375\361\005\320\374\004\304\357\004\205\263\004\353\354\004\000\376\361\004\261\364\004\202\322""\004\350\367\004\266\254\004\366\302\004\200\347\006\336\247\0014\346\324\005\245\315\004A\335\367\001A\004\335\354\004\365\344\004U[\362\367\001[\346\213\005g\200\370\001g\357\350\005\335w\216\370\001w\004}\225\370\001}\004\372\367\350\004@\243\350Qf\250E\260\031\373\270.\273\372\001V\320V\\\320\357\\a\320a\253\365\001\200A\330w78\330\232\202@\n\000\t\235\255\"\000\360\2474\210\363\003\364\367\004\301\365\004\265\360\004\270\345\004\260\352\004\263\354\004\010\310\365\004\334\313\006\211\307\001\002\340\342\013\262\373\004\324\350\004\316\306\004}_\346\247S5\260\t\270\021\240\201I\000\343\305Z\223\357\003\322\316\004\221\376\004\307\306\004\265\370\004\240\357\004\203\214\013\200\364\365\004\265\370\004\343\323\004\301\353\004\256\271\004\237\376\004\341\240\004`\310\215\306S\234\201N\225\323B\006\305\221\010\250\253\007\320t?}\360\000\000~\001\341\370\004\210\366\004\000\350\370\004\233\373\004\205\331\004\316\375\004\205\331\004\233\373\004\213\353\004\341\265\004t\247\356\004\232\314\013`\375\365\001`\003a\243\227S\014\211\204N\202\311X\320u\201\266\003\377\360\004\232\314\004\316\373\004\340\221\230\004\370\355\004\353\333\004\365\370\004\357\355\006\360\000\000k{\002\226\367\004R\325\370\001R\003\266\331\004\004\264\246\004\217\277\004b\246\311S\366\206N\261\253O\360\301\007\315\215(\320\370\250\047\366\367\004\315\204\004\231\372\004c\331\237QV\250\000\344\211N\226\314^\256\367\004\302\370\004\354\343\004\214\332\004\323\251\013\302\341\006\002\200\375\001\002\202\356\004\372\321\004\373\355\004\261\240\004\337\346\004\350\304\004\002\334\376\004d\304\314S\326\214N\305\314_\304\302\013\333\307\004\370\334\004\000\257\372\004\356\360\004\272\271\013\346\324\004\340\312\004\276\332\004\260\232\004\363\363\022#e\003\375\350K\203\267\005\315\217K\014\260\327(\313\315\t\240\330\315\010\302\354\004\270\231\037\324\217P\337\366 C\344\374\001C\273\004I\353\374\001I\004K\362\374\001K\363\004L\370\373Q\256\226\003/\310\034\320\357UW\320W\313\303\003k\320k\001l\353\225F""\234\315h\270\212R\215\372 \214\232\004\354\246\004\256D\343J\004\220\254J\234\321\005\336\231\001,\300l\377\320RT\320TZ\320Z\177_\320_h\320hi\231\231F\320\273\315z\223\210Q\255\321\022\360\353\004|\371\375\001|\003\272\337\205\004O\302\316\001O\004Q\311\316\001Qu\004\313\235\004d\327\316\001d\004p\336\316\001\tp\337\270\005\262\252\004y\204\316T\301\235\001\200\206\016\361\374\003\300\273\372\004\250\231\004\201\351\004\273\226\004\366\261\006\353\235\001M\320_Mb\320bc\261\235A\016\316\235$\337|\300;\310a\355\274\013\034\320\315\034\353\371\001h\260\n\013\277\367\004+\250\3771\250A\250X\260Y\270\377f\300F\310\"\310H\320\001T\302\314\014\341\235-\265\350\004\351\214\013\354\376\004\324\241\013\322\325\004\232\222\250\031H\322\322\001H\004\306\241\031\220d|\356\374\322\001|\004B\372\274\001B\005D\016\201\275\001D\005E\262\2744\252\315\024\364\206\t\335\202=\377N\320Ne\320e~\320\307~\177\330\254\245C\323\356(\216\266\002\014\025\377\320\025&\240a\240x\250\001q\237\301\n\275\215V\342\373\004\342\334\004\316\231\004\332\326\004\214\242\006_\360\000\000_\003\222\364\004v\345\373\001kv\003\233\207\004B\335\326\001B\004\341\326\004\335N\353\326\001N\004W\362\326\001W\004\325c\371\326\001c\323\262\005k\207\327\001k\004\335l\321\215W)\300<\223\272\001W\320\317W\\\320\\\251\376\001\332\245\001Q\320\003QR\205\202D\211\374)\324\206\t\214\260\007\236\377\004\253\374\022\377e\320ej\320jp\320\037pr\320rz\345\234\001\265\355\005\257\324\004\300\315\362\004\325\304\004\201\350\004\302\352\004\260\335\004\262\352\006\360\000C\000@\342\321\005\232\360\004\375\267\004\256\340\004p\252\377\001kp\003\305Dx\270\377\001x\003\305D\334\327\206\004\277\257J=\270Y\226\216\001[\320\377[]\320]d\320df\367\320fg\342\257\tE\260\031\320\377:J\310,\320VX\320=X\311\354\003l\320lm\272D\310A\024\311\205D\330\317%\\\263a\014\225\310\t\350\343\017\357\317\035\370\253\243/\302\353\004\374\276\006\360\000\000F\003\200\317\243\004\351\240\004\310\243\004\367\360\004\314\271\004\226\310\004\257\216\004F\326""\361\335\001F\004\257\216\004Y\377\335\001Y\004\335_\206\336\001_\004a\215\336\001a\004\341b\305\3354\222\371\024\367\221\t\320\254\0228P\320\361P\212\222\001\244\254D\225\316#=\310\r\320\007UV\330\246\2741\212\260(\276\361\004\267\361\004\342\335\006\357\360\000\000K\353\277\007\360\000\000\225W\320\313\005n\200\377\001n\322\376\005\242\341\004}n\225\377\001}\003~\355\240[8U\215!\000\271\263\020\275\312\n\251\263 \232\364&\300\3406\377\254\003\356\251\047\266\241\013\200\362\340\004\240\331\004\254\347\004\203\252\004\254\347\004\210\272\004\271\367\004p\366\264\254U\n\270\355\364\0019O\310q\000\240\262D\252\377#\367\2706\324\257&\364\254\022\254\210\013\364\305\004\370\302\004\335d\246\375\001d\003j\255\375\001j\003\335l\264\375\001l\003m\246\257[9R\353\320R\260\236\001\330\324\270i>\310\036\377\320WX\330\014\027\320\027\201(\256\375\004\000\t\346\270P\235\337\004\264\372\004\323\341\006\360\247\000\000N\231\255\005\375\307\004h\300\375\001h5\003\250\375\004y\316\375\001y\003\376\277\004\271\271\004\272\315\241\004T\267\352\001T\004\\\276\352\001\\[\004b\305\352\001b\004\356\232\004e\350\235W\377+\300\\\320QS\320S\377Y\320Y^\320^g\320\037gh\200A\330\300D\323\374\003\275\374\004\363Z\002\334\225D\251\373#.\310\016\320\377Vd\320dr\320rs\200\273]\363\363\035\336\260(\234\376\004\232\250\013\276K\375\216\013u\326\233\361\001u\003\240\245\004L\374\355\001L\004\252\305DZ\212\356\001Z\313Ef\230\356\001f\333\004o\237\356\001o\004\277\274J8\270\337\t\300\034\310Y\311\222\002_\320__a\320ab\337\222\014\270\316W\017\360\000\000l\246\314\005\355\375\006\350\235D\225\211%\367n\320T\366\300\006\023\320\023$\377\240A\240X\250Q\330\014\000\000\t\r\010\342\250O\340\267\004\316\372\004\314\3005\211\232\004\304\206\004\252\370\361\004`\220\362\001`\352\315\005m\236\362\001m\273\004s\245\362\001s\004u\254\362\001ut\203\301\005\362\315\004L\270\334\001L\005R\277\334\001wR\005T\306\334\001T\005U\367\3334\364\302\342\024\271\246\t\047\271`R\310v\320\377UZ\320Zc\320cj\377\320jv\320vx\320x""\350\277\356\003\221\275\004\301\303\004N\221\334\001:T\320\337Tm\320mn\355\235D,\250\3771\330\010\047\320\0477\260\377x\270q\300\001\340\010\030\337\230\001\330\010\t\354\373\002\033\230\3777\240%\320\047=\270Q\017\270o\310_\301\325\001\245\236\n\263\236\010\263\340\004\3772\260!\2601\260H\270\337I\300V\3106\325\210\002[\320\017[d\320d\250\327\014\234\371\004\261\244\013\357\376\004@\335\355\004\326\355\004\350\376\004\335\235Q\223\324\004\261\236\004e\270\366\001\327e\004f\360\3654<\360\000\\\320\377QZ\320Z\\\320\\cC\320c\277\232\003\327\313\007\215\305\001\236\236\021=\337\371\001|\207\366\010\332\310\034X\250W\260A\227\335 \3751\330\351\001,\320,A\300\030\357\310\021\310!\301QB\300!\375\300\262\356\0247\260q\270\001\270\377\030\300\031\310&\320PV\356\241\234\002`\320`\365\332\003u\320u\007w\320w\310\341\003\323\367\004\350\313\004\377\326\004\354\325\004\000\376\332\004\375\353\004\301\277\004\345\310\004\204\354\004\345\310\013\320\356\004\210\344\004t\363\310\004\210\344\004r\202\375\001r\003@\334\371\001\251@\206\261\005\362\316JA\352\000,\372\323\002a\313\320a\303\365\003k\235\317\001\274\354\0056\260\377\025\260i\270q\200A\330s?@\245\310\032\315\227\014I\260Q\306\340 \376\342\304|]\002\360\000\000]\002\200\203\362\004\316\310\004\261\336\004\320\364\004\223\375\004\303\221\047\337\241\004~\312\271\375\001~\262EA\354\263K\314\267\007\007\260\307z\300\021\215M\205\205D\232\313Mc\320\377ci\320ik\320ks\003\320s\367\310\003\242\376\004\307\256\013\210\211\004\314\362\004\243\303\004]h\246Ah\002j\255Aj\376\374\005\200\354\367\004\322\254\013\216\326\004\246\365\004\207\230\004\216\326\004\263\241\022}@\363\364S\242\205\024\241\210D\311\313N\233\311\017\353\316\031\\\265\205\001k\\\002\237\342\004i\303\205\001i\002\216\317\004\360\230\250\013\263\240t\272\363\034\313\210\010V\320VW\000\207\210O\304\375Z\276\311!\376\347\004\204\371\004\205\350\004\235\361\004\251\322\004\032\205\350\004O\256\376\001O\003\373\303\004\242\322\004\217\361\004@\301\233\004\206\257""\004\277\334\004\362\247\004\356\227\004\206\257\004O\345\2754\374\255\227\024\317\210\020V\320Vo\320o\371p\266\213L\242\301&\014\300L\320P\003Q\330\327\261`\345\213.\226\315\004\246K\247\331\004\207\346\004@\272\262\004\302\301\004\334\272\004\272\262\004\264\253\004\301\262\004l\324\364\001Ul\224\346\005~\342\364\001~\320\364\005A\266\226U\377\027\270\n\300)\310<\320\357WY\320Y\346\376\003k\320k\377u\320uv\200A\330A\231B\325\222O\275\262$q\330\370\334\017\276\262\025k\003\320k\266\341\003\277\331\003\344\323\004\316\226\031\335\354\004\315\214\004\032\245\313\004r\217\220\001r\002\353\323\004\305\331\004\262\370\004|\335\354\004\317\326\006\360\000\000`\003\341\253\004\020\357\351\004\360\217\004\242\266\004\234\257\004G\201\3054\267\262\025\212\223\017\004\320\201Q\244\226$1\221P\323\225r\366\331\004\273\340\004\272\316\006\217\360\000\000d\272\340\005\355\265\022\302\340\004K\350\246\3104\227\226\047\365\204Q3\312\363\001.\320.\177E\300X\310Q\310a\261\235\021\337D\300A\300Q\266\205\0209\270\377\021\270!\2708\3009\310\377F\320RX\320XZ\320\017Zb\320b\301\205\003\267\374\001\343\365\002\362\316\004\000\376\337\004\353\372\004\326\360\004\306\374\004\371\376\004\376\217\004\354\321\004\214\362\004\000\246\335\004\371\360\004\371\316\004\305\327\004\250\362\004\352\231\013\334\265\013\351\274\004\324\344\343\004\337\245\004M\317\3134C\347\000L\320\017Xa\320a\350\240\003\366\270\001\324\231\023\236\210Q\3774\2601\330\010/\320/\377G\300x\310q\320PQN\333\240\021E\300Q\374\351\001\354\346\016:\245@\1771\270H\300I\310V\255\252\002\377[\320[c\320cl\320\177lr\320rx\320x\301\274\003\000\257\343\004\273\340\004\225\322\004\203\352\004\234\322\004\332\355\004\276\226\004\243\322\004\000\266\343\004\311\340\004\341\231\013\313\365\004\226\325\004\207\347\013\373\250\004\322\265\004\325E\352\365\001E\241\317\005M\370\365\001M\004\325N\371\3164D\347\000\\\361\372\002d\320odk\320k\357\243\003\017\210\222\210c\3755\345\240\0010\3200I\310\030\277\320QR\320RS\206\244\021F\367\300a""\300\212\214\021;\2701\270\177A\270X\300Y\310f\232\315\002\377\\\320\\d\320dm\320\rm\321\356\001\320y\333\346\003\316\245\013\370\243\004\263\330\004@\204\252\004\232\336\004\341\346\004\216\214\004\364\343\004\207\341\004B\356\371\001CB\003\371\371\004\234\223 \252\274\013\371\222CE\347\000\375l\273\247\002e\320el\320l\357n\320no\252\240\022\340\010\014\377\210J\220m\2406\250\021\276\222\361\001M\230\024\230Q\233\361\001J\377\220i\230q\240\004\240A\377\360\006\000\t\r\210O\230\3379\240F\250!\010\002\320\014\177\036\230b\240\010\250\001\303\361\001\377O\2301\200A\340\010\020\377\220\004\220A\330\010\013\210\3774\210w\220a\220w\230\377a\330\014\021\220\030\230\021\276\004\000\320\021!\240\021D\000\r\177\022\220\037\240\013\2501\026\001\337\036\230{\250!\037\001\033\230wK\240q \002\"\240!\037\003\377\030\230\037\250\001\250\024\250\375Q0\001\021\220\005\220V\230\3771\230E\240\025\240d\250\377!\2501\330\020\027\320\027\3770\260\001\260\024\260Y\270\377a\330\020\035\230T\240\021\373\240!\255\377\0014\220q\320\030\377(\250\003\2501\330\024\030\377\230\001\320\031+\320+G\377\300q\310\001\330\020\025\220\335\\#\000.\260\001\223\001\025\220\235a\230\264\001\004\250AH\027\241\304\001D\357\270\t\300\021W\010\025\220[\257\240\001\240\036\230\310\001\021\272\363\001\320?\027\047\240t\2501\325\003P\002\377)\250\033\260A\330\014\020\276\240\0221\260\021\260$\261\243\001\330\177\020\036\230d\240!\240\311\000\177\025\220U\230!\230?\326\000\177?\270$\270a\270q\247\001\237X\230Q\230o\354\255\001_\004)d\211!\232\364\001q\347!\202\361\006\035\230\247\243!\370\364\354!\221\277\021\362\315\020`\320`a\320\ra\226\304\001\320m\301\222\n\230\352\004\252\252\004\367\376\004\343U\002\355\3733\321\314\024\254\333\003X\250Q`\321\2000\356\373\"\226\301\021\316\365\020\312\262\001\320b\354\255\001\203\320n\245\354\003\312\346\004\324\362\004\212\357\004\267\351\004V\200\316\2004\312\373\032\317\2003\243\353\"\233\303\021\326\306\020\277\323\001\320\215c\321\207\001\320o\275\353\003\331\364\004""\346\252\022W\300\323\2024\330\305\024\316\2029\273\352\"\240\305\021\302\270\020c\320ocd\320d\370\235\001\320p\325\352\003\000\364\344\004\327\366\004\272\355\004\355\371\006\214\3413\354\236\032\331\2043\323\351\"~\221\307%d\320de\320e\247\371\0013\320q\371\256\n\200\224\022Y\002\260\334J\331\2069\360\252\320#\254\311\021\254\320\022\352\335\001\320it\320\177tu\360\000\000v\001\232\266\013\210\312\374\004\311\272\004\237\247\004]\352\2104\341\233\033\354\2103.\377\250Q\330\010)\320);\277\2708\3001\300A\341\266\021?\375\270\251\371\0224\260A\260Q\260\337h\270i\300v\203\225\001U\320\377U]\320]i\320ij{\320j\245\240\001\360\000\000w\330\363\005P\345\360\004\322\363\004\275\322\004\345\257\004^\367\2124>v\000\377|\320S\\\320\\^\320\217^e\320e\257\301\001\236\262\007\371\2123/\377\250a\330\010*\320*=s\270X\366\226\001\356\270\021@\300\001\306\315\021\3755\210 a\260x\270y\310\375\006\345\223\001V\320V^\320^~\346\374\001\320kv\320vw\204\373\001\201\001\371\362\004\374\376\004\362\362\004\262\253\004\242\336\006\270\3513?\372v\000\014\250\335\002_\320_f\320\001f\356\317\003\231\226\005\257\200[\215\231\016\341\200(\330\372\004n\233\007\014\000\t\236\361\"\345\321\n\270\325\t\324\353\004\270\224\001\377\021\260(\270)\3006\310\335\026\256\332\001Y\320Y\253\332\001\320f\377q\320qr\360\000\000s\000\367\302\005\366\374\004\237\233\022\334\257\004\334\377\013\274\361\004\200\331\006\376\3553\235:\230\000<\310y\365\237\002\220\236\003d\376\243\330\007h\250j\270\014\300B\357\300h\310a\335\223-\014\000\t\026\266\277#\330\014\343\327\010\014\241\343\010\271\277\031\250\311\001\377\320hs\320st\360\000\007\000u\001\351\235\013\321\205\022\265\265\004\223\361\004\205\361\004\344\203\337\004\332\247\004G\355\3764\340\276\033h\250m\317\270<\300r\303\234\002\305\226\n \240\367\r\250Q\371\207\001\035\230X\240\360\204\273!\275\363\"\357\326\021\210\230\001!\2608\270w9\300F\320\276\001R\320R\350\303\003\377h\320hn\320np\320?px\360\000\000y\221\377\005\254\374\004\330\322\363\004\221\302\004""\275\243 y\002\340\362S7\260}!\2423\"\240-\250q\347\300\001\000\275!\376\325H\365\226$\265\336\003\276\272\014\253\306\004\224\352\004\360\376\004\240\225\301\004\235\246\004\372\242\004\306\206\004\342\275\004{\201\276\001{\001\002\224\344\004\220\371\004\207\335\004\360\254\006\340\3653\347\266\034\342\376\004\335\340\301\346@\n\000\t\241\223Ja\3205a\257\3762d\316\300\001d\002\335\376\013\370\370\004EG\352\356\001G\251\242\005\362\373\004\367\303\004W\200\376Z\200\233\201D\246\206]\274\373\047\236\312\004\337\373\013\337\253\004\350\355\004P\022\330\361\001P\224\337\005\217\257\004Y\201\373[\255\204\032\354\3052\000\213\241H\252\360.\336\277\004\314\204\004\364\302\004\202\217\004\312\311\004\322\256\004\240\236\306\004\331\376\004\222\331\004\312\274\004\211\334\004k\347\364\001kx\212\331\005\224\271\006\350\241PV\2505\260\220\306\004\370\276\201O\221\240I\343\271\003j\320jl\320\003lt\242\350!\332\365\004\233\320\004\214\222\004\232\337\004\363\363\004\200\216\253\004\324\277\004\225\253\004\333\277\004\232\337\004\333\314\004\345\363\022v\000\342\3444\245\241\032\362<\342\3440\242\207d\204\323 \223\357\004\257\273\004\200\232\357\004\255\314\004\352\366\004\322\353\004\227\345\004\364\264\006\334\217S5\001\260\205\345\002\310\215\010\205\310i\225\220\047\227\310U\343\267\004\277\220\004\020\200\362\022\223\345\004\225\362\004\333\322\004s\303\347S\265\322\006\277\201O8\375\232$\274\267\016\203\233\021b\320b\202\226\014\223\317\004\000\347\251\004\377\332\004\351\247\004\316\267\004\361\272\004\277\310 \357\370\004\342\310\004`\222\216\004\357\370\004\250\350\004\270\301\013\366\370\004w\003\214\233J\000\302\325\016\324\204O\327\230N\252\334\023\252\322\004\371\330\004\217\276\004\210\276\004\000\336\272\004\252\322\004\270\353\004\267\361\004\370\373\013\371\364\004\242\221\004\371\364\004\320\326\304\004\272\350\004\260\356\004\347\344\004w\220\374\001w\003\361x\356\220T\322\204X\347\236&\230\036\240q\037\250\010\260\001\330\271\337\034\256\373\023\221\334\004""\000\221\256\004\304\373\004\302\351\004\302\325\004\245\322\004\203\317\004\313\353\004\347\367\047\004\230\334\004\304\373\022y\366\236L\315\204`\364\254%\202\301\016\222\312qh\271\232\004\233\373\004\215\313\004a\337\376\001a\003\347\364\004\010\352\356\004\242\205\004\361\356\004z\267\3674\326\312&\234\216O\377\255%\370\232\304\016\221\256\022\304\235\003r\320rt\320\001t\276\270\n\320\307\004\246\304\004\313\270\004\362\333\004\303\235\004\216\337\004@\364\361\004\325\330\004\254\240\004\312\235\004\377\367\004\227\316\013b\373\372\001Cb\003\202\362\004\301\342\004\225\337\004\301\376\004{\317\3724\306\355\256\033V\250\232\216X\212\257%\377\254#g\320\035g\224\304\003u\320u\321\271\n\323\275\022\355\333\004\000\246\342\004\212\253\004\250\321\004\331\345\004\227\373\004\211\373\013\230\370\004\221\337\004`\221\316\004\307\361\004\236\325\004\232\365\004\236\376\004|\003\302\257Q\376\273\201Z0\250q\330\010+\320\317+?\270x\204\303\001\270\354\021A\300\375\021\273\324\0206\260a\260q\270\337\010\300\t\310\026\207\356\001W\320\357W_\320_\227\251\003t\320t\007v\320v\344\272\n\346\276\022\276\345\004\261\354\004\267\345\004@\376\336\004\277\354\004\251\256\004\206\342 \260\373\004\334\341J@\333\000\377\034\320U^\320^`\320\017`g\320g\261\266\001\215\307\024\375\353\006\242\353j\370\272\323\205\365\251\004\212\247\006\360\000\000W\003\350\221\354\004\271\241\004\350\315\013}\350\376\001}\003~\370\247\3764\323\353&\375\232O2\260\021\330\010\377-\320-C\3008\3101\355\310\363\272\022C\300\307\327\0218\270\001\277\270\021\270(\300)\343\362\001W\216\254\334\002a\320a\211\222\003\274\364\001\312\257\002A\006\324\353\001A\002\340\362\004\222\301\022\231\342\004\321\350\004\222\342\004@\356\362\004\231\342\004\341\376\004\276\233\013\330\327\013\247\357\004l\353\376\001\243l\003\240\342\004\341\315\004\373\353\004\177\250\3504B~\213\336\003`\320`b\320b\262\352\003\301l\317\204d\257\327#\307\326\211\230\357\004\335\252\006\360\000\203\000Y\214\222\005\365\353\004\266\230\004\254""\205\004\304\345\004@\000\354\326]\267\241O\242\327$\247\341\020\316\326v\234\324\004\352\332\013\324\350\004\000\270\341\004\351\361J\227\327&\325\244O\225\327%\306\344\020\302\326v\372\353\004\240\337\332\013\232\222\004\372\236\004\303\230\004\372\353\004A\257\374\001A\243\004B\374\3734\211\327(\300\216M6\222\371\0011\377\3201K\3108\320ST\327\320TU\342\377\021G\305\332\022<\270\177A\270Q\270h\300i\244\222\001\377[\320[]\320]e\320\377en\320nt\320tz\003\320z\313\365\003\357\347\004\222\374\004\234\322\004\367\335\004\312\365\004\000\303\301\013\246\362\004\367\335\004\204\272\004\213\357\013\302\264\004\222\357\013\267\250\013\250\312\230\004\240\374\004\345\353\004C\233\3774F\340\000|\377\320[d\320df\320f\307m\320m\357\356\003\353\335\020\226\253L\020\000\375\t\236\327#\030\320\030)\250\021\277\250(\260!\330\014\000\t\027>\351\331\001\001\250\030\260\021\314\302\n\210\305\004\016\325\327\020]\320]\274\370U\224\305\004\360\365\013\241\357\004\320\224\234\004\375\264\022\313\222\004\334\362\004O\364\377\001O\004\255U\373\377\001U\004\250\357\004a\235\357\001a\273\004j\244\357\001j\004r\253\357\001r\372\247\357\005z\271\357\001z\004D\005\360\337\000\000D\005M\003\001M\005\335W\n\001W\005]\021\001]\005\275_\030\001_\005`\005\351\330Jy\377\230\014\240B\240f\250F\377\260%\260y\300\014\310L\376\313\347\002`\320`f\320fk\003\320k\246\305\003\220\222\004\300\253\013\230\316\013\277\347\013\330\267\013`\352\340\004\350\236\004\361\340\004\224\356\004\260\365\004]\003\255\334\n8\346\271\n\241\334!\365\331I^\320^\271\277\007\232\320\002\000\313\372\004\370\342\004\267\326\004\315\351\004\213\316\004\251\367\004\316\266\004\337\271\004z\306\351\004w\220\332QV\250:\260\346\334\002\374\312\304\006\321\304\010Y\240a\330\010\"\357\240,\250a\334\234\001\032\230,\257\240a\240x\347\234\001\036\264\337\001\250\177h\260a\360\n\000\t\263\334@\377w\300f\310B\310h\320\351V\312\317\003\303\343\003v\234\200\226W\250I\374\365\200=\343\334@\007\300v\310R\310\007x\320W\321\235\003\245\212\003""\366\322\003\333\347\004\376\364\004\010\260\356\004\215\353\004\327\230 x\365\334Q\243/\207\301\010\365\202r\316\372\244\003o\320o\270\200z\346\341\032W\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\227\355\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\230w\004\320\034\264\341\001u\260F\246\361\001\376\237\352\0016\230\027\240\001\330\024\375\031J\002T\250\021\250+\260\377Q\330\024\"\240!\330\021\177\025\220S\230\005\230Q\244\352\005\377$\240a\320\0479\270\026\347\270q\300\273\352\002\244\351\001>\250\021\377\250\047\260\026\260q\270\001\257\340\010\013\210\336\370\002\021o\002\320S\023$\235\000M\001!\217\353\001Q\205\001\177s\220!\2206\230\022\207\001\367\024\220C\246 Y\250a\250\367u\260A{\001\021\330\024\027\353\220r\032\0003\251A\330\030 \357\240\004\320$\361\246\001|\3004\376\255\353\002\030\033\2306\240\027\250\337\001\330\034!\240\213![\270\377\001\270\033\300A\330\034*;\250!x\0015\220\003\351\003\255\352\002\377U\230!\320\033+\2504\371\250\302\354\006\375@\n\000\t\017\210\377d\220(\230(\240%\240\375q\227\355\003z\230\021\230%\230\276\242b$\220a\220q\374%\n\327\000\t\020\267 8\230`\001\240\271\0217\003\007\007\037\260\005\211\213\001\360\216\033\010\005\240Q]\003\334d\342FN\374Z\003\347A\016\230e\240<\250\247q\260\013\371\360\001\346E\014\217\204\004\340\177\010\021\320\021&\240a\276\354\001""\276\366\356\001C\210}\230I\311`e>\235\356\001\024\220D\320\030\356\344\002\363G\371Z\325\321\002\336@v\220V\320\033\1772\260#\260V\2706\234\355\001\376\357\222\003#\260Q\330\021\027\220\377v\320\0357\260s\270&\277\300\006\300a\330\020\274\351\001X{\260S\253A\t\330\014\027\255\355\001\177q\250\001\340\014 \240\343\000z\203\014H\206\357\001\250\013\2601\344\362\001\376\367a\027\320\0305\260Q\330\373\014\023\303@\032\2405\250\007\377\250{\270(\300!\330\r?\023\2207\320\0324\345\355\001\025\003\3457\222`\027\215c\255\204\001E\230\023\377\230J\240a\240w\250a\3729\0011\223\360\001:\220Q\220g\375\230H\0027\230!\2301\330\357\010\016\210i\374 \014\r\330\357\020\034\230E\340@D\260\001\336\326a\200A\360\016\256\206\007\2104;\210u\375\204\001\020\320\020\260\0001\001\177e\2208\2307\240!\266U\375\013\344\206\003E\250\021\330\020\032\334\340\206\007\275\205\001\035\240a\216\204\0055\230\365\003\235\205\001\027\270\206\002c\250\021\250\177$\250f\260A\340\020\243\225\004\367\025\250m\255B)/\250q\377\330)1\260\024\260Q\330\237\r\037\230w\240\230AK\t\017\351\210\340\204\001=\016!8\0170\260\004\376^\000\014\023\2203\220a\220\377v\230S\240\001\240\025\240\337c\250\027\260\001\346\010\340\010\377\033\2302\230\\\250\025\250\337k\270\021\270+\361\370\002\034 \377\240\016\250e\260;\270e\377\3001\330\010#\2402\240\377S\250\005\250\\\270\021\270\335\"\365\231\001\330$(\014\000U\260\324\225\363\002\276\204\0011\203\363\001\027\325\204\001#\240\3374\320\047B\300\246\"5\220\377\004\220D\230\n\240!\240\2774\240q\250\004\250\237\361\002\003\377\2207\230)\2401\240A\356\266\362\003z\240\021\243\205\002\024\025\340o\020\021\330\024\240`\320!\210\375\001\377&\300\001\330\027\030\330\024\367\032\320\032\376\232\001\030\033\2301\317\230A\330\030\262A\364\362\001\024\032\346?\003\340\010\365$L\000\024\220J\377\230a\230u\240O\2601\377\330\014\047\240u\250M\270\335\021\274#a\330\020\n\020\031\300\213!\340%\000t\275\206\001\347\205\001\331\207\0013\257\210a\210~\246 \003\235\002\014\372\377@!\343\363\002""\014\023\2204\220\371q\275A\203\000\r\020\220\001\220\237\036\230t\320#\216\212\001X\000C~\030\000\006\230c\240\024\240\253\205\001v\361 \260T\267\212\001\022\320\022\344\257\001\347\020\023\220\234!\200\000E\230\021\353\230!\251\213\001)\312\001\340\010\t}\330^\001\"\240\"\240H\230\"\304\353b\372\364\003\014\223\206\001\276\364\001\222\212\005[\270\314\274\364\007\370\363\006\021\220\037\006\346\364\001+\250/Q\320.@\254\211\013.\262\211\001\234\212\001\2371\200A\3602\332\204\010\231\205\001n\370\232\214\001\330 \271\364\001\007\220t\320\033\3776\260a\330\020\023\320\023\333%\240\304\331\001\024\030\271B>\260\367\021\330\024\271\364\001\047\250\034\260\253Q\340\004\004\021\371\365\0011\257A\007\357\240q\250\001\364\211\005>\240\023\276\330A\025\320\025%\240\323\212\001\320\277\025&\240a\330\020\232`\340\373\020\026\332\367\002\001\330/6\260\377c\270\021\270.\310\002\310\377!\3309:\33004\260\337E\270\021\270!\350\364\003N\220\345!\212\206\001\014\346\212\001\370&\010\014\320\353\014\034\377@\010\306\002\320\000\021\377\220\021\330\004\005\360\006\000\377\n\013\330\010\023\220?\240\177!\330\004\007\200t\210\363\206\002j\230\366\002\016\352\206\001l\362\206\002\004\005\241\370\001]1\302\277\002\036\230l\200\370\001\035\346\365\005\357\036\230a\340\314\216\001\031\230\021\037\320\004\035\230Q\266\216\010\366\366\001\206`\237\330\010\022\220\047\265B\006\000\"\277\220G\2304\320\037\322\366\001\047\377\270\021\330\023\027\220w\230\347i\240z\233\214\001\306\371\001G\2209\373\230A\214\215\001v\220W\230An\270E\026\240q\337\210\001\330\010\250\216\003\376\005\000\210U\220!\320\023#\000\225\205\001"; + PyObject *data = __Pyx_DecompressString_LZSS(cstring, 42826, 146469); #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 (121608 bytes) */ + #else /* compression: none (146469 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',')','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','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','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',' ','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','S','t','r','e','n','g','t','h',' ','P','a','t','t','e','r','n',' ','(','[','-','2','0','0','.','.','-','1','0','0',']',' ','=',' ','B','e','a','r','i','s','h',',',' ','[','-','1','0','0','.','.','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','e','a','r','i','s','h',',',' ','0',' ','=',' ','N','e','u','t','r','a','l',',',' ','[','0','.','.','1','0','0',']',' ','=',' ','G','e','t','t','i','n','g',' ','B','u','l','l','i','s','h',',',' ','[','1','0','0','-','2','0','0',']',' ','=',' ','B','u','l','l','i','s','h',')','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',')','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','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','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','\014','\320','\014','\036','\230','b','\240','\010','\250','\001','\330','\010','\014','\320','\014','\034','\230','A','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\021','\330','\014','\021','\220','\033','\230','A','\230','[','\250','\001','\250','\033','\260','A','\330','\010','\r','\210','U','\220','!','\320','\023','#','\240','4','\240','q','\360','\006','\000','\t','\r','\210','L','\230','\t','\240','\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','\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','\014','\210','G','\220','9','\230','J','\240','f','\250','A','\330','\014','\017','\210','t','\320','\023','+','\250','1','\250','G','\260','1','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\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','b','e','r','s','t','a','l','i','b','.','n','u','m','p','y','t','a','l','i','b','.','o','p','e','r','a','t','o','r','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','.','_','_','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','.','_','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','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','I','n','t','e','g','r','a','l','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','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','_','_','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','_','F','u','n','c','t','i','o','n','_','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','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','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','_','_','_','_','o','p','t','_','i','n','p','u','t','_','v','a','l','u','e','_','_','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','n','v','e','r','t','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','i','n','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','b','e','r','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','e','r','a','t','o','r','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','\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','\004','\320','\034','.','\250','a','\250','u','\260','F','\270','!','\270','1','\330','\020','\023','\220','6','\230','\027','\240','\001','\330','\024','\031','\230','\033','\240','A','\240','T','\250','\021','\250','+','\260','Q','\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','\320','$','6','\260','a','\260','|','\300','4','\300','q','\310','\001','\330','\030','\033','\230','6','\240','\027','\250','\001','\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','\014','\000','\t','\021','\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','\023','\220','6','\230','\032','\240','5','\250','\007','\250','{','\270','(','\300','!','\330','\r','\023','\220','7','\320','\032','4','\260','A','\330','\014','\023','\220','6','\230','\032','\240','7','\250','\047','\260','\027','\270','\001','\340','\010','\013','\210','6','\220','\023','\220','E','\230','\023','\230','J','\240','a','\240','w','\250','a','\330','\014','\023','\220','1','\330','\010','\013','\210',':','\220','Q','\220','g','\230','Q','\330','\014','\023','\220','7','\230','!','\230','1','\330','\010','\016','\210','i','\220','q','\330','\014','\r','\330','\020','\034','\230','E','\240','\033','\250','D','\260','\001','\260','\026','\260','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','4','\320','\037','1','\260','\021','\260','\047','\270','\021','\330','\023','\027','\220','w','\230','i','\240','z','\260','\026','\260','q','\330','\010','\014','\210','G','\220','9','\230','A','\330','\014','\017','\210','v','\220','W','\230','A','\330','\020','\025','\220','[','\240','\001','\240','\026','\240','q','\250','\013','\260','1','\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)Bad Object (TA_BAD_OBJECT)Bad Parameter (TA_BAD_PARAM)Bu""ll/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)Cannot mix polars and pandasDashed 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)Inputs: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 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 AverageStrength Pattern ([-200..-100] = Bearish, [-100..0] = Getting Bearish, 0 = Neutral, [0..100] = Getting Bullish, [100-200] = Bullish)TA-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)Values represent a lower limitValues represent an upper limitWeighted 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_fillAllCandleSe""ttingsBBANDSBBANDS_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_fillCDLHANGINGMANCDLHANGINGMAN_StreamCDLHANGINGMAN_Stream.open_and_fillCDLHARAMICDLHARAMICROSSCDLHARAMICROSS_Stream""CDLHARAMICROSS_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_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_arraysFunction.set_input_namesFunction.set_parametersHAHA_StreamHA_Stream.open_and_fillHMAHMA_StreamHMA_Str""eam.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_StreamMOM_Stream.open_and_fillMULTMULT_StreamMULT_Stream.open_and_fillNATRNATR_StreamNATR_Stream.open_an""d_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_OpenAndFillTA_CDL3BLACKCROWS_PeekTA_CDL3BLACKCROWS_UpdateTA_CDL3BLACKCROWS_ValueTA_CDL3INSIDETA_CDL3INSI""DE_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_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDAR""KCLOUDCOVER_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_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_CDL""MARUBOZU_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_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_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_OpenA""ndFillTA_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_OpenAndFillTA_HT_DCPERIOD_PeekTA_HT_DCPERIOD_UpdateTA_HT_DCPERIOD_ValueTA_HT_DCPHASETA_HT_DCPHASE_CloneTA_H""T_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_M""ACDFIX_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_MIN_ValueTA_MOMTA_MOM_CloneTA_MOM_OpenTA_MOM_OpenAndFillTA_MOM_PeekTA_MOM_UpdateTA_MOM_ValueTA_MUL""TTA_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_OpenAndFillTA_RVI_PeekTA_RVI_UpdateTA_RVI_ValueTA_RVOLTA_RVOL_CloneTA_RVOL_OpenTA_RVOL_OpenAndFillTA_RV""OL_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_TRANGE_OpenAndFillTA_TRANGE_PeekTA_TRANGE_UpdateTA_TRANGE_ValueTA_TRIMATA_TRIMA_CloneTA_TRIMA_OpenT""A_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_StreamVORTEX_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_volumeaccelerationaccelerationinitlongaccelerationinitshortaccelerationlongaccelerationmaxlongaccelerationmaxshortaccelerationshortacqui""redappendargargsarraysasciiastypeasyncio.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_parameterssetdefaultsettingtypesignalmatypesignalperiodskip_firstslowd_matypeslowd_periodslowk_matypeslowk_periodslowlimitslowmatypeslowperiodstac""klevelstartvaluestatestaticmethodstddevperiodstr2bytesstreamsystabletalib._ta_libthreadingtimeStamptimeperiodtimeperiod1timeperiod2timeperiod3to_numpytypetype_unst_idupdateupdate_infoupperuse_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\3307""8\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\014\320\014\036\230b\240\010\250\001\330\010\014\320\014\034\230A\360\006\000\t\r\210L\230\t\240\021\330\014\021\220\033\230A\230[\250\001\250\033\260A\330\010\r\210U\220!\320\023#\2404\240q\360\006\000\t\r\210L""\230\t\240\021\330\014\021\220\034\230Q\230k\250\021\320*<\270A\330\014\021\220\025\220a\220~\240Q\240n\260A\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\014\210G\2209\230J\240f\250A\330\014\017\210t\320\023+\2501\250G\2601\330\020\025\220[\240\001\240\026\240q\250\013\2601\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.numberstalib.numpytalib.operatortalib.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_fillASIA""SINASIN_StreamASIN_Stream.open_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_fillCDLGAPSIDESIDEWHITECDLGAPSIDESIDEW""HITE_StreamCDLGAPSIDESIDEWHITE_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_Str""eamCDLSHORTLINE_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_Stream""FOSC_Stream.open_and_fillFRACTALFRACTAL_StreamFRACTAL_Stream.open_and_fillFRAMAFRAMA_StreamFRAMA_Stream.open_and_fillFarFunctionFunction.__call__Function.__call_functionFunction.__get_opt_input_valueFunction.__init__Function.__input_price_series_namesFunction.__localFunction.__opt_input_valueFunction.__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_fillInsufficientHistoryIntegralKAMAKAMA_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_fillRangeTypeRealRealBodySARSAREXTSAREXT_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_OpenAn""dFillTA_ADX_PeekTA_ADX_UpdateTA_ADX_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_V""alueTA_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_CDLCOUNTERATTACK_UpdateTA_CDLCOUNTERATTACK_ValueTA_CDLDARKCLOUDCOVERTA_CDLDARKCLOUDCOVER_CloneTA_CDLDARKCLOUDCOVER_OpenTA_CDLDARKCLOUDCOVER_OpenAndFillTA_CDLDARKCLOUDCOVER_PeekTA_CDLDARKCLOUDCOVER_UpdateTA_C""DLDARKCLOUDCOVER_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_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_OpenAndFil""lTA_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_CDLSPINNINGTOP_UpdateTA_CDLSPINNINGTOP_ValueTA_CDLSTALLEDPATTERNTA_CDLSTALLEDPATTERN_CloneTA_CDLSTALLEDPATTERN_OpenTA_CDLSTALLEDPATTERN_OpenAndFillTA_CDLSTALLEDPATTERN_PeekTA_CDLSTALLEDPATTERN_UpdateTA_CDLSTALLEDPA""TTERN_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_COPPOCK""TA_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_Op""enTA_FOSC_OpenAndFillTA_FOSC_PeekTA_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_V""alueTA_KSTTA_KSTEXTTA_KSTEXT_CloneTA_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_OpenAnd""FillTA_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_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_Op""enTA_PERCENTB_OpenAndFillTA_PERCENTB_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_BUT""TER_OpenTA_SWAK_BUTTER_OpenAndFillTA_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_VWM""A_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__get_opt_input_value_Function__input_price_series_names_Function__local_Function__localdata_Function__name_Function__namestr_Function__opt_input_value_INPUT_ARRAYS_TYPES_INPUT_PRICE_SERIES_DEFAULTS_PANDAS_DATAFRAME_PANDAS_SERIES_POLARS_DATAFRAME_POLARS_SERIES_TA_ReadLease_TA_ReadLease.__e""nter___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__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____opt_input_value__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_stackcolumnsconvertcopycycleperiodddecodedefault_valuedefaultsdeltadescriptiondisplay_namedocsdocumentationemaperiodemptyencodeendidxendswithenumeratefactorfactornarrowfactornormalfactorwidefastd_matypefastd_periodfastk_periodfastlimitfastmatypefastperiodfirstperiodflagflagsflags_lookup_dictfunc_argsfunc_infofunc_line""func_objectfunction_flagsfunction_namefunctionsget_input_arraysget_input_namesget_parametersgroupgroupshandlehelphighhistorylenholderiididximport_errorinindexinfoinput_arraysinput_nameinput_namesinput_price_series_namesintegeris_emptyitemskkcperiodkeykeyskijunperiodkindkwargsleftbarslengthlimitmovelocallookbacklowlowerma1periodma2periodma3periodma4periodmatypemaximummaxperiodmemominperiodmintrendlengthmissingmissing_keysmodulemsgmultipliernnamenamedtuplenannbdevnbdevdnnbdevupno_existing_input_arraysnum_inputsnum_opt_inputsnum_outputsnumbersnumpyobjectoffsetoffsetonreverseopenopenInterestopen_and_filloperatoroptInopt_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_periodslowlimitslowmatypeslowperiodsma1periodsma2periodsma3periodsma4periodstacklevel""startvaluestatestaticmethodstddevperiodstopperiodstr2bytesstreakperiodstreamsystabletalib._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\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\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(\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\320a""f\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\004\320\034.\250a\250u\260F\270!\2701\330\020\023\2206\230\027\240\001\330\024\031\230\033\240A\240T\250\021\250+\260Q\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\320$6\260a\260|\3004\300q\310\001\330\030\033\2306\240\027\250\001\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\014\000\t\021\220\004\220H\230K\240q\250\013\2601\260A\330\010\013\2106\220\027\320\0305\260Q\330\014\023\2206\230\032\2405\250\007\250{\270(\300!\330\r\023\2207\320\0324\260A\330\014\023\2206\230\032\2407\250\047\260\027\270\001\340\010\013\2106\220\023\220E\230\023\230J\240a\240w\250a\330\014\023\2201\330\010\013\210:\220Q\220g\230Q\330\014\023\2207\230!\2301\330\010\016\210i\220q\330\014\r\330\020\034\230E\240\033\250D\260\001\260\026\260q\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\2304\320\0371\260\021\260\047\270\021\330\023\027\220w\230i\240z\260\026\260q\330\010\014\210G\2209\230A\330\014\017\210v\220W\230A\330\020\025\220[\240\001\240\026\240q\250\013\2601\330\010\r\320\r\036\230a\330\010\r\210U\220!\320\023#\2404\240q"; #endif PyObject *data = NULL; #define __Pyx_DecompressString_UNUSED @@ -459584,10 +540172,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 < 2597; i++) { + for (int i = 0; i < 3034; i++) { Py_ssize_t bytes_length = str_length_index[i].length; PyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL); - if (likely(string) && i >= 131) PyUnicode_InternInPlace(&string); + if (likely(string) && i >= 140) PyUnicode_InternInPlace(&string); if (unlikely(!string)) { Py_XDECREF(data); __PYX_ERR(0, 1, __pyx_L1_error) @@ -459595,8 +540183,8 @@ static const char bytes[] = "\n\n This is a pythonic wrapper around TALIB\047 stringtab[i] = string; pos += bytes_length; } - for (int i = 2597; i < 2876; i++) { - Py_ssize_t bytes_length = bytes_length_index[i-2597].length; + for (int i = 3034; i < 3366; i++) { + Py_ssize_t bytes_length = bytes_length_index[i-3034].length; PyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length); stringtab[i] = string; pos += bytes_length; @@ -459606,15 +540194,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 < 2876; i++) { + for (Py_ssize_t i = 0; i < 3366; i++) { if (unlikely(PyObject_Hash(stringtab[i]) == -1)) { __PYX_ERR(0, 1, __pyx_L1_error) } } #if CYTHON_IMMORTAL_CONSTANTS { - PyObject **table = stringtab + 2597; - for (Py_ssize_t i=0; i<279; ++i) { + PyObject **table = stringtab + 3034; + for (Py_ssize_t i=0; i<332; ++i) { #if PY_VERSION_HEX >= 0x030F0000 PyUnstable_SetImmortal(table[i]); #elif CYTHON_COMPILING_IN_CPYTHON_FREETHREADING @@ -459637,27 +540225,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}; - int16_t const cint_constants_2[] = {128,256,512,1024,2048,4096,8192}; - int32_t const cint_constants_4[] = {16777216L,33554432L,67108864L,134217728L,238750788L,268435456L,536870912L,1073741824L}; + 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 < 29; i++) { - numbertab[i] = PyLong_FromLongLong((i < 13 ? cint_constants_1[i - 0] : (i < 20 ? cint_constants_2[i - 13] : (i < 28 ? cint_constants_4[i - 20] : cint_constants_8[i - 28])))); + 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<36; ++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 @@ -459691,7 +540279,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 */ @@ -459771,2259 +540359,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), 4955}; + 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), 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 = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 7478}; + 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), 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 = {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), 7794}; + 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 = {3, 0, 0, 11, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 8502}; + 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), 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 75}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 78}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 83}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 86}; 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}; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 118}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 131}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 173}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 180}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 187}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 194}; 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}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 205}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 217}; 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}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 228}; 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}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 277}; 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, 6, (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_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_G9JfA_t_1G1_q_1_a_U_4q, tuple_dedup_map); if (unlikely(!__pyx_mstate_global->__pyx_codeobj_tab[235])) goto bad; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS), 287}; + 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[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_G4_1_wiz_q_G9A_vWA_q_1_a, 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), 300}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 10, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 304}; 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_auF_1_6_AT_Q_S_Q_a, 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), 335}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 8, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 339}; 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), 358}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 362}; 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), 368}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 372}; 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), 400}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 2, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 404}; 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), 412}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 16, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS), 416}; 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), 478}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 483}; 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), 490}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 12, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 495}; 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), 521}; - 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; + const __Pyx_PyCode_New_function_description descr = {3, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 526}; + 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->__pyx_n_u_kind, __pyx_mstate->__pyx_n_u_convert}; + __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_opt_input_value, __pyx_mstate->__pyx_kp_b_iso88591_A_HKq_1A_6_5Q_6_5_7_4A_6_7_6_E_J, 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), 536}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 546}; 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), 546}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 556}; 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), 549}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 559}; 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), 552}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 1, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 562}; 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), 566}; + const __Pyx_PyCode_New_function_description descr = {0, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 576}; 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), 586}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 5, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 596}; 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), 606}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 616}; 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), 659}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 4, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 674}; 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), 682}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 697}; 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), 707}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 7, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 722}; 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), 733}; + const __Pyx_PyCode_New_function_description descr = {2, 0, 0, 6, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 748}; 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), 757}; + const __Pyx_PyCode_New_function_description descr = {1, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 772}; 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 = {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), 4440}; + 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 = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 16126}; + 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), 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 = {1, 0, 0, 13, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 17098}; + 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), 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 = {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), 17526}; + 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 = {2, 0, 0, 14, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 19234}; + 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 = {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 = {2, 0, 0, 15, (unsigned int)(CO_OPTIMIZED|CO_NEWLOCALS), 24305}; + 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), 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 = {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), 26935}; + 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), 27946}; + 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 = {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 = {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), 30303}; + 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; @@ -464731,6 +545684,27 @@ static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { } #endif +/* ListCompAppendAndDecref */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE +static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + __Pyx__ListComp_AppendAndDecref(list, len, x); + return 0; + } + int result = PyList_Append(list, x); + Py_DECREF(x); + return result; +} +#else +static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x) { + int result = PyList_Append(list, x); + Py_DECREF(x); + return result; +} +#endif + /* PyObjectCallMethod0 (used by dict_iter_common) */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { #if CYTHON_VECTORCALL && (__PYX_LIMITED_VERSION_HEX >= 0x030C0000 || !CYTHON_COMPILING_IN_LIMITED_API) @@ -465521,27 +546495,6 @@ static CYTHON_INLINE int __Pyx_PyObject_CompareBoolEq_object_int(PyObject *op1, return 0; } -/* ListCompAppendAndDecref */ -#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && CYTHON_ASSUME_SAFE_SIZE -static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x) { - PyListObject* L = (PyListObject*) list; - Py_ssize_t len = Py_SIZE(list); - if (likely(L->allocated > len)) { - __Pyx__ListComp_AppendAndDecref(list, len, x); - return 0; - } - int result = PyList_Append(list, x); - Py_DECREF(x); - return result; -} -#else -static CYTHON_INLINE int __Pyx_ListComp_AppendAndDecref(PyObject* list, PyObject* x) { - int result = PyList_Append(list, x); - Py_DECREF(x); - return result; -} -#endif - /* CIntToPyUnicode */ static CYTHON_INLINE PyObject* __Pyx_uchar___Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC @@ -470244,6 +551197,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) { @@ -471527,85 +552559,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 688698e9bc..8cc693d878 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 4a308712dc..d2b9a10ee8 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 8343225661..c39ec75c97 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 6d1fe1715c..2bfc6faf6d 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 7d315dc7bc..c34529dcd3 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 b7fddf4b1e..f22e95d782 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_abstract.py b/tests/test_abstract.py index e8b281b15a..c5e7537a9f 100644 --- a/tests/test_abstract.py +++ b/tests/test_abstract.py @@ -174,6 +174,40 @@ def test_info(): assert expected == abstract.Function('BBANDS').info +_TA_VERSION = tuple(int(p) for p in talib.__ta_version__.split()[0].split(b'.')) + + +@pytest.mark.skipif(_TA_VERSION < (0, 8, 2), + reason='these flags are newer than TA-Lib C 0.8.1') +def test_flags_newer_than_0_8_1(): + pattern = ['Line', + 'Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)', + 'Output can be positive', + 'Output can be negative', + 'Output can be zero'] + assert abstract.Function('CDLENGULFING').output_flags == OrderedDict([ + ('integer', pattern + ['Weak Pattern (+/-80 = a weaker form of the pattern)']), + ]) + assert abstract.Function('CDLHIKKAKE').output_flags == OrderedDict([ + ('integer', ['Line', + 'Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)', + 'Confirmation Pattern (+/-200 = this bar confirms an earlier pattern)', + 'Output can be positive', + 'Output can be negative', + 'Output can be zero']), + ]) + + dpo = abstract.Function('DPO') + assert 'An output is display-shifted' in dpo.function_flags + assert dpo.output_flags == OrderedDict([ + ('real', ['Line', 'Output is display-shifted']), + ]) + + ln_flags = abstract.Function('LN').function_flags + assert 'Uses a transcendental math function' in ln_flags + assert 'Input must be positive' in ln_flags + + def test_input_names(): expected = OrderedDict([('price', 'close')]) assert expected == abstract.Function('MAMA').input_names @@ -305,6 +339,49 @@ def test_parameter_type_checking(ford_2012): sma.set_parameters(timeperiod=35.5) +def test_real_parameter_accepts_any_real_number(ford_2012): + expected = func.BBANDS(ford_2012['close'], 20, 3.0, 1.0) + bbands = abstract.Function('BBANDS') + + for up, dn in ((3, 1), (np.int64(3), np.int64(1)), + (np.float32(3.0), np.float32(1.0))): + assert_array_equal(expected, bbands(ford_2012, 20, up, dn)) + assert_array_equal(expected, bbands(ford_2012, nbdevup=up, + nbdevdn=dn, timeperiod=20)) + + bbands.set_parameters(timeperiod=20, nbdevup=3, nbdevdn=np.int64(1)) + assert bbands.parameters['nbdevup'] == 3.0 + assert type(bbands.parameters['nbdevup']) is float + assert type(bbands.parameters['nbdevdn']) is float + assert_array_equal(expected, bbands(ford_2012)) + + bbands.set_parameters(nbdevup=np.float64(3.0)) + assert type(bbands.parameters['nbdevup']) is np.float64 + + with pytest.raises(TypeError, match=re.escape( + 'Invalid parameter value for nbdevup (expected float, got str)')): + bbands(ford_2012, nbdevup='2') + + +def test_integer_parameter_accepts_any_integer(ford_2012): + expected = func.SMA(ford_2012['close'], 10) + + sma = abstract.Function('SMA', timeperiod=np.int64(10)) + assert type(sma.parameters['timeperiod']) is int + assert sma.lookback == 9 + assert_array_equal(expected, sma(ford_2012)) + assert_array_equal(expected, abstract.SMA(ford_2012, np.int32(10))) + + class Period(int): + pass + sma.set_parameters(timeperiod=Period(10)) + assert type(sma.parameters['timeperiod']) is Period + + with pytest.raises(TypeError, match=re.escape( + 'Invalid parameter value for timeperiod (expected int, got float64)')): + sma(ford_2012, timeperiod=np.float64(10)) + + def test_call_doesnt_cache_parameters(ford_2012): sma = abstract.Function('SMA', timeperiod=10) @@ -321,6 +398,29 @@ def test_call_doesnt_cache_parameters(ford_2012): assert_array_equal(expected, output) +def test_failed_call_doesnt_cache_parameters(ford_2012): + sma = abstract.Function('SMA', timeperiod=10) + expected = func.SMA(ford_2012['close'], 10) + + with pytest.raises(Exception, match='TA_BAD_PARAM'): + sma(ford_2012, timeperiod=0) + assert_array_equal(expected, sma(ford_2012)) + + with pytest.raises(Exception, match='missing required data key'): + sma(ford_2012, timeperiod=20, price='missing') + assert_array_equal(expected, sma(ford_2012)) + assert sma.parameters == {'timeperiod': 10} + assert sma.input_names == {'price': 'close'} + + +def test_rejected_set_parameters_changes_nothing(): + macd = abstract.Function('MACD') + with pytest.raises(TypeError): + macd.set_parameters(fastperiod=5, slowperiod='26') + assert macd.parameters == {'fastperiod': 12, 'slowperiod': 26, + 'signalperiod': 9} + + def test_call_without_arguments(): with pytest.raises(TypeError, match='Not enough price arguments'): abstract.Function('SMA')() diff --git a/tests/test_func.py b/tests/test_func.py index 34adabbded..cebfef7cdf 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 28ae624a34..223e30f693 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/build_talib_linux.sh b/tools/build_talib_linux.sh index fd00a2201c..9177b98a8c 100644 --- a/tools/build_talib_linux.sh +++ b/tools/build_talib_linux.sh @@ -1,6 +1,6 @@ #!/bin/bash -TALIB_C_VER="${TALIB_C_VER:=0.8.1}" +TALIB_C_VER="${TALIB_C_VER:=0.8.3}" CMAKE_GENERATOR="Unix Makefiles" CMAKE_BUILD_TYPE=Release CMAKE_CONFIGURATION_TYPES=Release diff --git a/tools/build_talib_macos.sh b/tools/build_talib_macos.sh index fd00a2201c..9177b98a8c 100644 --- a/tools/build_talib_macos.sh +++ b/tools/build_talib_macos.sh @@ -1,6 +1,6 @@ #!/bin/bash -TALIB_C_VER="${TALIB_C_VER:=0.8.1}" +TALIB_C_VER="${TALIB_C_VER:=0.8.3}" CMAKE_GENERATOR="Unix Makefiles" CMAKE_BUILD_TYPE=Release CMAKE_CONFIGURATION_TYPES=Release diff --git a/tools/build_talib_windows.cmd b/tools/build_talib_windows.cmd index 4efc18df4d..b450e1da11 100644 --- a/tools/build_talib_windows.cmd +++ b/tools/build_talib_windows.cmd @@ -1,7 +1,7 @@ :: Download and build TA-Lib @echo on -if not defined TALIB_C_VER set TALIB_C_VER=0.8.1 +if not defined TALIB_C_VER set TALIB_C_VER=0.8.3 set CMAKE_GENERATOR=NMake Makefiles set CMAKE_BUILD_TYPE=Release diff --git a/tools/generate_func.py b/tools/generate_func.py index 486e0cbd82..b3e2146fc0 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 6247a07284..f63d7abf19 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)